連載
» 2015年05月15日 05時00分 UPDATE

VBA/マクロ便利Tips:Excelにおける「今」を表す3つの関数、Now、Date、Timeの違いとは

業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、現在のシステム日付や時刻を取得するNow、日付のみを取得するDate、時刻のみを取得するTimeについて。

[薬師寺国安,PROJECT KySS]
「VBA/マクロ便利Tips」のインデックス

連載目次

※本Tipsの環境:Windows 8.1 Enterprise(64ビット)+Excel 2013


 今回のTipsも関数の使い方について解説する。今回は、「Now」「Date」「Time」という「現在のシステム日付や時刻」に関する3つの関数の使い方だ。なお、関数の基本的な使い方については、Tips「コンパイルエラーにならない関数の使い方――括弧の有無、複数の引数、Callステートメント、戻り値、名前付き引数と順番」を参照してほしい。


現在のシステム日付や時刻を取得するNow関数

 「Now」関数は現在のシステム日付や時刻の両方を知りたいときに使用する関数だ。

 図1のように現在のシステム日付や時刻を表示するセルと、「実行」ボタンを配置しておく。

ExcelVBA15zu_01.png 図1 現在の時刻を表示するセルと「実行」ボタンを配置する

 各セルにはExcelのメニューから書式を設定している。各自が好きなデザインにしても構わない。

 「現在の日付と時刻」を表示させるコードはリスト1になる。

 VBE(Visual Basic Editor)を起動して「挿入」→「標準モジュール」を選択し、プロジェクト内に追加されるModule1内にリスト1のコードを記述する。

Option Explicit
Sub Now関数の使い方()
  Range("C2").Value = Now
  'Range("C2").Value = Format(Now, "yyyy年mm月dd日 hh時mm分ss秒")
End Sub
リスト1 「Now」関数で現在の日付と時刻を表示するコード

 セル「C2」に「Now」関数を使って現在の日付と時刻を表示する(3行目)。

 これを、「年月日 時分秒」で表示するには、Format関数を使って、4行目のように記述すればいい。今回は、この表示方法はコメントアウトしている。

 リスト1のコードを「実行」ボタンに関連付け実行すると、図2のように表示される。

ExcelVBA15zu_02.png 図2 「Now」関数で現在の日付と時刻が表示された

現在のシステム日付を取得するDate関数

 「Date」関数は、西暦0001年1月1日から西暦9999年12月31日までの日付を表す。

 図3のように現在の日付を表示するセルと、「実行」ボタンを配置しておく。

ExcelVBA16zu_01.png 図3 現在の日付を表示するセルと「実行」ボタンを配置する

 各セルにはExcelのメニューから書式を設定している。各自が好きなデザインにしても構わない。

「現在の日付」を表示させるコードはリスト2になる。

 「VBE」を起動して「挿入」→「標準モジュール」を選択し、プロジェクト内に追加されるModule1内にリスト2のコードを記述する。

Sub Date関数の使い方()
  Range("C2").Value = Date
  'Range("C2").Value = Format(Date, "gggee年mm月dd日")
End Sub
リスト2 「Date」関数で現在の日付を表示するコード

 セル「C2」に「Date」関数を使って現在の日付を表示する。

 これを「元号」形式で表示するには、Format関数を使って、3行目のように記述する。今回はコメントアウトで外している。

 リスト2のコードを「実行」ボタンに関連付け実行すると、図4のように表示される。

ExcelVBA16zu_02.png 図4 「Date」関数で現在の日付が表示された

現在のシステム時刻を取得するTime関数

 「Time」関数は、現在のシステム時刻を取得する関数だ。

 図5のように現在の時刻を表示するセルと「実行」ボタンを配置しておく。

ExcelVBA13Tips_01.png 図5 現在の時刻を表示するセルと「実行」ボタンを配置する

 各セルにはExcelのメニューから書式を設定している。読者の皆さんが好きなデザインにしても構わない。

 「現在の時刻」を表示させるコードはリスト1になる。

 VBEを起動して[挿入]から[標準モジュール]を選択し、プロジェクト内に追加されるModule1内にリスト3のコードを記述する。

Sub Time関数の使い方()
  Range("C2").Value = Format(Time, "hh:mm:ss")
End Sub
リスト3 「Time」関数で現在の時刻を表示するコード

 セル「C2」にFormat関数とTime関数を使って「hh:mm:ss」形式で現在の時刻を表示する。

 リスト3のコードを「実行」ボタンに関連付け実行すると、図6のように表示される。

ExcelVBA13Tips_02.png 図6 「Time」関数で現在の時刻が表示された

まとめ

 「Date」関数は、現在の日付を取得できるため、使い道は多いと思う。資料作成年月日を表示する場合などに使える。

「Time」関数は、例えばある作業をする場合、「開始」ボタンを配置してクリックし、開始した時刻を表示し、「終了」ボタンを配置してクリックし、終了した時間などを表示させれば、自分の行っていた作業が、どのくらいの時間を要したか分かるのではないだろうか。終了時間から開始時間を差し引いて、作業に要した時間を計算させて表示させても面白いと思う。ぜひ挑戦してみてほしい。

 次回も引き続き、関数について解説する予定だ。お楽しみに。

著者紹介

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

kuniyasu.jpg

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。