任意の日付から任意の日付までを一列にセルに入れる
2つの任意の日を早い順からそれぞれ
DAY1、DAY2とします。
DAY2 - DAY1 + 1
で2つの日付の間の日数がわかります。
これをSPANとします。
つまり、
SPAN = DAY2 - DAY1 + 1
次に日付をセルに入れていきます。
一番最初のセル(下のコードではセルA2)に
DAY1を入れます。
以下、1つ下のセルA3では
DAY1 + 0
の値を入れます。
下に向かって順番に
DAY1 + 1
DAY1 + 2
DAY1 + 3
…
DAY1 + SPAN
のように入れていきます。
DAY1 + SPAN = DAY2です。
これをするのにFor文を使います。
For i = 0 to SPAN - 1
…
Next i
のようにします。
日時の計算については、
こちらの記事「日時と時間」を参考してみてください。
Sub macro100318a() Sub DateWriter(DAY1 As Date, DAY2 As Date) End Sub |
macro100318aを実行後のシートの状態
WriteDaterを使って、任意の年の1年間の日付を出力する
WriteDaterYプロシージャを作ります。
仕組みはコードを見れば分かると思います。
コードはこちら
Sub macro100318b() Sub DateWriterY(MyYear As Integer) Call DateWriter(MyYear & "/1/1", MyYear & "/12/31") |
さて、年間ときたら次は月間カレンダーです。
月によって日数が違うので
月末の日付を求めるの必要があります。
これには、DateAdd 関数を使います。
詳しい説明はVBAヘルプにあります。
下のコードでは、指定した月の1日に
一ヶ月を足して1日分引いて
指定した月の月末の日付を求めています。
Sub macro100318c() Sub DateWriterM(MyYear As Integer, MyMonth As Integer) Call DateWriter(CDate(DAY1), DAY2) |
DAY1はDate型で宣言したのですが
WriteDaterMに入れる時、そのままでは型が違ってエラーになったので
Date型に変換しています。
たまに、こういうことがあります。
現在のところ、理由は不明。
| 固定リンク
この記事へのコメントは終了しました。

コメント