ExcelVBA(マクロ)で現在の日付、時間を求める方法/Date、Time、Now関数他の使い方、Excel関数とのちがい

girl- IT

VBA関数にもDate関数がありますが、これはExcelのDate関数とは別物です。
今日の日付を求めることができます。

Advertisements

今日の日付/Date関数(VBA)とDate関数(Excel)のちがい

今日の年月日を求める
Date
date1
シンプルにMsgBox Dateで実行してみましょう。
date2
今日の日付が表示されます。これがVBAのDate関数です。
MsgBoxの場合表示形式はPC設定準拠で、セルに出力するとセルの表示形式に準拠します。
date3
一方、ExcelのDate関数ではDate(引数1,2,3)と指定することにより、
date4
1=年、2=月、3=日とした日付を作成することができます。
date9
Excel関数ではToday関数がVBAのDate関数と同じ機能を持ちます。

年(Year)、月(Month)、Day(日)を求める

年、月、日を抽出する
Year(日付)
Month(日付)
Day(日付)
date14
日付にYear、Month、Day関数を噛ませることによって、年、月、日を抽出することが可能です。
出力形式はただの数値(Integerとして処理されたVariant型)なので、出力するセルの書式設定が日付だと変な日付になります。
date15
Excel関数の場合も、それぞれYear、Month、Day関数にシリアル値を噛ませることで年、月、日を取りだすことができます。

今の時間/Time関数(VBA)とTime関数(Excel)のちがい

現在時間を求める
Time
date5
同様にVBAでTime関数を用いると、
date6
現在時刻を求めることができます。
date11
ExcelのTime関数ではDate関数同様、引数1,2,3から時、分、秒の時刻を作ることができる関数となり、機能が異なります。
date12
Excel関数で現在時間を求めたい場合、たとえば=Time(Hour(Now()),Minute(Now()),Second(Now()))のようにすれば可能です。

時間(Hour)、分(Minute)、秒(Second)を求める

時、分、秒を抽出する
Hour(時刻)
Minute(時刻)
Second(時刻)
date16
時刻にHour、Minute、Second関数を噛ませることによって、時、分、秒を抽出することが可能です。
Excel関数では上の=Time(Hour(Now())~をバラして、=hour(now())=Minute(now())=Second(now())と書けば現在の時、分、秒を求められます。

現在日時/Now関数(VBA)とNow関数(Excel)

現在日時を求める
Now
date7
今度はMsgBox NowとVBEで入力してみます。
date8
Now関数を用いると今日の日付、時間をまとめて取得することができます。
date10
これはExcelのNow関数でも同じ結果となります。

時間系関数は参照のみ(書き込み不可)

date13
時間系の関数は参照専用で、パソコンの時刻設定そのものを変更することはできません。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント