質問: false end sub
回答: >売上台帳は 縦(列)に1日1行か 1日複数行か 1日分は行的に固まっているのか。 そういうデータの状況のことを書かないと、それらによって大幅に処理ロジックが変わる。模擬実例を挙げよ。 読者には売上台帳が見えないことを忘れるな。 ーー a1に6、a2に25と入っているシートと売上台帳は同じシートか (ブック)シート、(行、列)、データの並び順を明確にして質問のこと。 ーー 年指定の問題は、面倒でも1セル指定するようにすべきだ。 またvba初心者なら、月末というのをやめて31日、30日、28日、29日を具体的に入れる設計の法が良いと思う。コードが増えるだけ。 ーーー 初心者のうちはcopyメソッドより、他セルに値代入をお勧めする。 経験から、コピー法は初心者にはなれるまで難しいと思う。 ーー 日付はエクセルでは日付シリアル値という整数値であることをご存知か。大切なことです。これが判れば、日付の前後は整数の大小に帰する。 ーー 参考コード 範囲日付の抜き出し 日付条件は同一シート(a1,a2とする)。2008年仮定。 sub test01() e = dateserial(2008, range("a1"), range("a2")) 'msgbox e s = dateserial(2008, range("a1") - 1, range("a2")) + 1 'msgbox s d = range("a65536").end(xlup).row for i = 3 to d hi = dateserial(2008, cells(i, "c"), cells(i, "d")) 'msgbox hi if (hi >= s) and (hi <= e) then msgbox hi '日付条件を満たす。他シートナリに値を代入。 end if next i end sub msgboxのシングルコーテーションを順次はずして実行し、正しい結果になるかチェック・納得してみて。 ーー 他シートに代入する場合の書き方は少し経験が要る。 まずそういうことを勉強して、判らない場合は質問して、課題解決に進めるべきだ。 どういう要素技術(=コード記述)がいるかが整理できないなら、こんな仕事に関連したことに、今は着手すべきでない。