[VBA] 現在のシステム日付とシステム時刻を取得します

 VBA 基本技術のコーナーです。皆さんがお使いの PC の片隅に現在の日付と時刻が表示されていると思いますけど、それは PC がファイルの保存時間などを記録するための システム日付、システム時刻 とよばれるものです。このデータを VBA で取得する方法を解説しますよ。関数を使うだけなので特に難しいことはありませんけど、日付や時刻を組み込んだアプリケーションを開発するためには必須となる知識です。それでは講座を始めましょー。

現在のシステム日付を取得します

 Date関数 は現在のシステム日付、つまり現在の年・月・日を取得する関数です。

 '現在の日付を表示します

 Sub NowDate()

  Dim mydate As Date

  mydate = Date

  Debug.Print "現在の日付は" & mydate & "ですよ"

 End Sub

 マクロを実行するとイミディエイトウィンドウに

現在の日付は2017/09/19ですよ

というように表示されます。上のマクロは

 Sub NowDate()

  Debug.Print "現在の日付は" & Date & "ですよ"

 End Sub

と書いても、まあ同じなんですけど、Date関数の戻り値が日付型 (Date型) となることを明示するために、あえて変数 mydate にシステム日付を代入しています。以降のマクロもこんな感じで記述しています。実際、もっと複雑なマクロを書くときも、いったんは日付を変数に入れておくことが多くなると思います。
 

現在のシステム時刻を取得します

 Time関数 は現在のシステム時刻、つまり現在の時・分・秒を取得する関数です。

 '現在の時刻を表示します

 Sub NowTime()

  Dim mytime As Date

  mytime = Time

  Debug.Print "現在の時刻は" & mytime & "ですよ"

 End Sub

 このマクロを実行するとイミディエイトウィンドウに

現在の時刻は 5:51:43 ですよ

というように表示されます。
 

現在のシステム日付とシステム時刻を同時に取得します

 現在のシステム日付とシステム時刻を同時に取得するときは Now関数 を使います。

 '日付と時刻を表示します

 Sub NowDateTime()

  Dim mynow As Date

  mynow = Now

  Debug.Print "現在の日付と時刻は" & mynow & "ですねー"

 End Sub

 このマクロを実行するとイミディエイトウィンドウに

現在の日付と時刻は 2017/09/19 5:59:55 ですねー

というように表示されます。
 

システム日付の年、月、日を返します

 Year関数 はシステム日付から「年」を整数型で取得します。
 また、Month関数Day関数 はそれぞれ「月」と「日」を整数型で取得します。

 '現在の年、月、日を表示します

 Sub YMD()

 Dim myyear As Integer
 Dim mymonth As Integer
 Dim myday As Integer

 myyear = Year(Date)
 mymonth = Month(Date)
 myday = Day(Date)

 Debug.Print "今年は" & myyear & "年であります"
 Debug.Print "今月は" & mymonth & "月であります"
 Debug.Print "今日は" & myday & "日であります"

 End Sub

 マクロを実行するとイミディエイトウィンドウに

  今年は 2017 年であります
  今月は 9 月であります
  今日は 19 日であります

という3つの文が表示されます。え? さっきから、出力メッセージのおかしな語尾が気になる? こばとの勝手でしょー! 文句があるなら、コードを好きにいじってくださいなー!
 

システム時刻の時、分、秒を返します

 Hour関数 はシステム時刻から「時」を整数型で取得します。
 Minute関数Second関数 はそれぞれ「分」と「秒」を整数型で取得します。

 '現在の時、分、秒を表示します

 Sub HMS()

 Dim myhour As Integer
 Dim myminute As Integer
 Dim mysecond As Integer

 myhour = Hour(Time)
 myminute = Minute(Time)
 myday = Second(Time)

 Debug.Print "現在の時刻は" & myhour & "時ですよー"
 Debug.Print "現在の分は" & myminute & "分ですよー"
 Debug.Print "現在の秒は" & mysecond & "秒ですよー"
 Debug.Print "今" & myhour & "時" & myminute & "分ですねー"

 End Sub

 このマクロを実行するとイミディエイトウィンドウに

  現在の時刻は 6 時ですよー
  現在の分は 13 分ですよー
  現在の秒は 0 秒ですよー
  今 6 時 13 分ですねー

てなふうに表示されますよ。今回紹介した関数を使って、日付と時刻をどんどん取得しちゃってくださいなー。

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)