「VBA TODAY ない」
「エクセル マクロ 今日の日付」
といった検索キーワードでアクセスがありました。。
Excelをある程度使える方で、VBAに挑戦しはじめた方による検索でしょう。
VBAにToday関数はない
Excelのワークシート関数がある程度使えるようになり、VBAに挑戦しはじめた方が戸惑うポイントの一つが、関数名の違いです。
今日の日付を取得する関数の違いは、その代表的なものの一つです。
今日の日付を返すExcelのワークシート関数といえばTODAY関数ですが、VBAには「Today」といった名前の関数はありません。
VBAではDate関数で今日の日付を取得できる
VBAで今日の日付を返す関数には、TODAYとはまったく別の名前がつけられています。
Date関数
Excelのワークシート関数の場合「DATE」は、引数に年・月・日を指定すると、それに対応するシリアル値を返してくれる関数です。
同じ綴りのDate関数が、VBAの場合は今日の日付を返してくれます。
イミディエイトウィンドウなどで、
MsgBox Date
を実行してみれば、今日の日付がメッセージボックスで表示されます。
ちなみに、ワークシート関数のDATEと同じ動きをするVBAの関数は、DateSerial関数です。
ワークシート関数とVBA関数は違う
ユーザーからすれば、同じExcelで、ワークシート関数とVBA関数とがなぜ違うのか疑問に感じてしまうかもしれませんが、別の進化をとげてきた、表計算ソフトとしてのExcelと、Excelのマクロ機能が融合しているのが現在のExcelの姿ですから、仕方のないことなのです。
元々別のものが一つになっているので、違っているのが当然のことで、たまたま同じ名前で同じような結果を返す関数があると考えていただくほうがいいんじゃないかと思います。
ちなみに、現在の日付と時刻を返す関数が、珍しく合致している関数の代表格で、ワークシート関数もVBA関数いずれも「now」です。
最終更新日時:2020-09-12 13:01
- Newer:フィールドが更新されないようロックする−Ctrl+F11キー
- Older:Excel 2010のコメント印刷設定
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで今日の日付を取得する-Date関数