today関数がないVBAで日付をyyyymmdd表示する方法

エクセルでその日の日付を入力するとき、ワークシート上ではtoday関数を使うかと思いますが、 today関数のないVBAでは、どうするのがよいでしょうか?

また、日付の表示形式を指定したいときはどうすればよいでしょう?

特に、yyyymmdd形式のように、日付のデフォルト表示設定にない形式にしたいときなど、困ってしまうこともあるかもしれませんね。

本記事では「VBAで日付をyyyymmdd表示する方法」について解説します。

1.VBAでtoday関数の代わりになる関数は?

こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。

エクセルで日付を入力したいときによく使うのがtoday関数ですね。

毎回日付を入力する必要がなくなるので、多用する方も多いのではないでしょうか。

ただ、このtoday関数で注意したいのは、VBAにはない、ということなんです。

例えば、書類の入力作業をマクロ使って自動化しよう、なんてVBAコードを書き出したとします。

入力した=マクロを実行した日付を書類の右上に入力するといったとき、today関数は使えないので、別の関数を使う必要があるんですね。

VBAではDate関数というのが代わりに用意されています。

アクティブセルに今日の日付を入れたい場合は以下のようなコードでOKです。

Sub todayの代わり()

ActiveCell.Value = Date

End Sub

2.yyyymmdd表示の指定方法

2.1 セルの書式設定で指定する方法

決まったセルに日付を入力するという場合、セルの書式設定を予め決めておくのもひとつですね。

対象のセルを選択して、右クリックメニューからセルの書式設定を選択します。

表示形式のタブを開くと、分類というのがありますから、日付というところから種類を選んでみましょう。

ただし、このデフォルト設定にはyyyymmddのような形式は用意してくれてありませんので、ご注意。

そういうときは、ユーザー定義というところで作ってしまいましょう。

2.2 VBAで指定する方法

前節のような方法も、書類の形なんかが決まっていればよいのですが、少し応用力には欠けていますね。

VBAで日付入力のときに指定してしまうのがスマートだと思います。

こんなときに使えるのがFormat関数です。

以下のようにVBAコードを記載することで、アクティブセルに日付を入力しつつ、その表示形式を指定できます。

Sub yyyymmdd表示()

ActiveCell.Value = Format(Date, "yyyymmdd")

End Sub

yyyymmddのところはyymmddなどに変更も可能。

個人的には6桁の日付をよく使うので、yymmdd形式の方を多用しています。

3.まとめ

本記事では、 「VBAで日付をyyyymmdd表示する方法」 について解説しましたが、いかがでしたか?

エクセルでは、日付は多く使用するものですので、ぜひ押さえておきたいテクニックですね。