エクセルマクロ(EXCEL VBA) その22 今日の日付を取得(NowとDate)
今日の日付を取得してみましょう
エクセルマクロを使って、今日の日付を取得することができます。
A1に、今日の日付を入れるマクロを作ってみましょう。
Sub hiduke()
Cells(1, 1) = Now
End Sub
と、打ち込んでください。
これを実行すると、
A1に、今日の日付と、今の時刻が打ち込まれました!
時刻は必要なくて、日時だけでいい場合は、NowをDateに修正してください。
Sub hiduke()
Cells(1, 1) = Date
End Sub
これを実行すると、
日付はそのままで時刻が0:00になりました。
普通、日付を扱いたいときは、こちらのDateを使うのが良さそうです。
では、A2には、08月23日(火)と表示させたい時はどうしたらいいでしょうか?
formatという関数を使うことで、表現したい形式に変更するこができます。
以下のようにコードを修正してください。
Sub hiduke()
Cells(1, 1) = Date
Cells(2, 1) = Format(Date, "mm月dd日(aaa)")
End Sub
これを実行すると
日付の形式を変更できました。
明日の日付は?
では、明日の日付を取得するにはどうしたらいいでしょうか?
DateAddという関数を用いることで1日進めることができます。
ということで、A3には、明日の日付を入れてみましょう。
こちらのコードを追加してください。
Cells(3, 1) = DateAdd("d", 1, Date)
“d” はDayの意味、1は1日、Dateは今日の日付を呼び出すものなので、
A3に、「今日の日付に、+1日 追加したもの」を入れる ということです。
これを実行すると、
明日の日付が入れられました!
今日から10日後までの日付リストを作る
明日の日付が取得できるようになったので、試しに今日から10日後までの縦長カレンダーを作ってみましょう。
新しいマクロを作り、まず、A1に今日の日付を入れます。
Sub hiduke_list()
Cells(1, 1) = Format(Date, "mm月dd日(aaa)")
End Sub
そして、A2には、明日の日付を入れたいので、
Cells(2, 1) = DateAdd("d", 1, Date)
とすればいいですが、このままだと形式が違ってしまいます。
形式を合わせたいので、さらにFormatで囲みましょう。
Sub hiduke_list()
Cells(1, 1) = Format(Date, "mm月dd日(aaa)")
Cells(2, 1) = Format(DateAdd("d", 1, Date), "mm月dd日(aaa)")
End Sub
これで形式も合わせられました。
ということで、あとはFor Nextで10日分繰り返しましょう。
Sub hiduke_list()
Cells(1, 1) = Format(Date, "mm月dd日(aaa)")
For i = 1 To 10
Cells(i + 1, 1) = Format(DateAdd("d", i, Date), "mm月dd日(aaa)")
Next
End Sub
これを実行すると、
10日後までの縦長カレンダーができました。
宿題-22
今日の日付をA1に入れて、B1に明日、C1に明後日という具合に続けて今日から20日後までの横長カレンダーを作ってください。
ただし、日付のフォーマットは 8/23(火) という形式にしてください。
(文:森脇孝/エントレ)