Excelにおける「今」を表す3つの関数、Now、Date、Timeの違いとは:VBA/マクロ便利Tips
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、現在のシステム日付や時刻を取得するNow、日付のみを取得するDate、時刻のみを取得するTimeについて。
今回のTipsも関数の使い方について解説する。今回は、「Now」「Date」「Time」という「現在のシステム日付や時刻」に関する3つの関数の使い方だ。なお、関数の基本的な使い方については、Tips「コンパイルエラーにならない関数の使い方――括弧の有無、複数の引数、Callステートメント、戻り値、名前付き引数と順番」を参照してほしい。
現在のシステム日付や時刻を取得するNow関数
「Now」関数は現在のシステム日付や時刻の両方を知りたいときに使用する関数だ。
図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
セル「C2」に「Now」関数を使って現在の日付と時刻を表示する(3行目)。
これを、「年月日 時分秒」で表示するには、Format関数を使って、4行目のように記述すればいい。今回は、この表示方法はコメントアウトしている。
リスト1のコードを「実行」ボタンに関連付け実行すると、図2のように表示される。
現在のシステム日付を取得するDate関数
「Date」関数は、西暦0001年1月1日から西暦9999年12月31日までの日付を表す。
図3のように現在の日付を表示するセルと、「実行」ボタンを配置しておく。
各セルにはExcelのメニューから書式を設定している。各自が好きなデザインにしても構わない。
「現在の日付」を表示させるコードはリスト2になる。
「VBE」を起動して「挿入」→「標準モジュール」を選択し、プロジェクト内に追加されるModule1内にリスト2のコードを記述する。
Sub Date関数の使い方() Range("C2").Value = Date 'Range("C2").Value = Format(Date, "gggee年mm月dd日") End Sub
セル「C2」に「Date」関数を使って現在の日付を表示する。
これを「元号」形式で表示するには、Format関数を使って、3行目のように記述する。今回はコメントアウトで外している。
リスト2のコードを「実行」ボタンに関連付け実行すると、図4のように表示される。
現在のシステム時刻を取得するTime関数
「Time」関数は、現在のシステム時刻を取得する関数だ。
図5のように現在の時刻を表示するセルと「実行」ボタンを配置しておく。
各セルにはExcelのメニューから書式を設定している。読者の皆さんが好きなデザインにしても構わない。
「現在の時刻」を表示させるコードはリスト1になる。
VBEを起動して[挿入]から[標準モジュール]を選択し、プロジェクト内に追加されるModule1内にリスト3のコードを記述する。
Sub Time関数の使い方() Range("C2").Value = Format(Time, "hh:mm:ss") End Sub
セル「C2」にFormat関数とTime関数を使って「hh:mm:ss」形式で現在の時刻を表示する。
リスト3のコードを「実行」ボタンに関連付け実行すると、図6のように表示される。
まとめ
「Date」関数は、現在の日付を取得できるため、使い道は多いと思う。資料作成年月日を表示する場合などに使える。
「Time」関数は、例えばある作業をする場合、「開始」ボタンを配置してクリックし、開始した時刻を表示し、「終了」ボタンを配置してクリックし、終了した時間などを表示させれば、自分の行っていた作業が、どのくらいの時間を要したか分かるのではないだろうか。終了時間から開始時間を差し引いて、作業に要した時間を計算させて表示させても面白いと思う。ぜひ挑戦してみてほしい。
次回も引き続き、関数について解説する予定だ。お楽しみに。
著者紹介
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。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 © ITmedia, Inc. All Rights Reserved.
関連記事
- スクショをExcelに張り付けるのに役立つ4つのテクニック
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。後編は、画像ファイルをシートに張り付け、Excel 2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。 - [Esc]キーによるExcel VBAの実行中断を防止する
ExcelではVBA(Visual Basic for Applications)によってさまざまな処理を自動的に実行できる。しかし、VBAの実行中にユーザーが[Esc]キーあるいは[Ctrl]+[Break]キーを押すと、自動処理が止まってしまう。止めたくない場合は、Application.EnableCancelKeyプロパティの設定を変更する。 - Windows TIPSディレクトリ > プラットフォーム別 > Office > Excel