- 公開日:
- 更新日:
ExcelのVBAを使って今日の日付を表示する方法
今日の日付を表示するには、通常TODAY関数の式(=TODAY())を使って今日の日付を表示します。
しかし、VBAを使用する場合、今日の日付は式としてではなく値(例: 2023年1月25日)としてシートに入力されます。値を入力するセルは他のセルからの参照がないため、VBAで算出した値の方が使い勝手が良い場合があります。
この記事では、ExcelのVBAを使って今日の日付を表示する4つの方法をご紹介します。また、デフォルトの状態ではVBAを開くための開発タブが表示されていないので、開発タブの表示方法も冒頭で解説します。
開発タブの表示方法
ExcelのVBAを使うには、初期状態では表示されていない開発タブを設定する必要があります。その開発タブから「Visual Basic」を選択してVBAコードを入力します。
以下では、開発タブを表示する方法について解説します。
ファイルタブを選択します。
オプションタブを選択します。
「Excelのオプション」ダイアログボックスが表示されました。
「リボンのユーザー設定」タブを選択し、「開発」にチェックマークを入れます。
OKボタンを押します。
開発タブが表示されました。
ExcelのVBAを使って今日の日付を表示する方法
ExcelのVBAを使って今日の日付を表示する4つの方法をVBAコードとともにご紹介します。4つの方法とは以下のとおりです。
- 今日の日付を「年/月/日」で入力する
- 今日の日付を和暦で入力する
- 今日の日付を時刻を含めて入力する
- 今日の日付に曜日をつけて入力する
なお、ExcelのVBAでTODAY関数を使うことができません。以下では、DATE関数もしくはNOW関数を使用します。
今日の日付を「年/月/日」で入力する
ExcelのVBAを使って今日の日付を「年/月/日」の形式で表示する方法について説明します。
Excelで開発タブをまだ表示していない場合は、上記「開発タブの表示方法」を参照してください。
今日の日付(年月日)を表示したいセル(B3)を選択します。
開発タブ、「Visual Basic」の順に選択します。
「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
挿入タブ、標準モジュールの順に選択します。
ここでは「Module4(コード)」ダイアログボックスが表示されました。以下のコードを入力します。
Sub InputTodayDate()
Dim myCell As Range
Set myCell = ActiveCell
myCell.Value = Format(Date, "yyyy/mm/dd")
End Sub
上記は、アクティブセルに今日の日付を「年/月/日」の形式で出力するコードです。
ここで使用している「Date」はDATE関数であり、「年」「月」「日」を引数にして日付を作成する関数です。年は「yyyy」、月は「mm」、日は「dd」にあたります。
また、「Format」とは、指定された書式に変換された文字列を表示するFormat関数を指します。
「Sub ユーザーフォームの実行(F5)」を選択し、画面右上の×ボタンを押します。
VBAを使って今日の日付が「年/月/日」の形式で表示されました。
作成した年月日が2023年1月25日だったので、「2023/1/25」の形式で表示されました。
今日の日付を和暦で入力する
ExcelのVBAを使って今日の日付を和暦で表示する方法について説明します。
Excelで開発タブをまだ表示していない場合は、上記「開発タブの表示方法」を参照してください。
今日の日付(和暦)を表示したいセル(B3)を選択します。
開発タブ、「Visual Basic」の順に選択します。
「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
挿入タブ、標準モジュールの順に選択します。
ここでは「Module4(コード)」ダイアログボックスが表示されました。以下のコードを入力します。
Sub InputTodayJdate()
Dim myCell As Range
Set myCell = ActiveCell
myCell.Value = Format(Date, "ggge年m月d日")
End Sub
上記は、アクティブセルに今日の日付を「和暦年/月/日」の形式で出力するコードです。
ここで使用している「Date」はDATE関数であり、「年」「月」「日」を引数にして日付を作成する関数です。
和暦は「ggg」で年は「e」、月は「m」、日は「d」にあたります。
また、「Format」とは、指定された書式に変換された文字列を表示するFormat関数を指します。
「Sub ユーザーフォームの実行(F5)」を選択し、画面右上の×ボタンを押します。
VBAを使って今日の日付が「和暦年・月・日」の形式で表示されました。
作成した年月日が2023年1月25日だったので、「令和5年1月25日」の形式で表示されました。
今日の日付を時刻を含めて入力する
ExcelのVBAを使って今日の日付を時刻を含めて表示する方法について説明します。
Excelで開発タブをまだ表示していない場合は、上記「開発タブの表示方法」を参照してください。
今日の日付(時刻含む)を表示したいセル(B3)を選択します。
開発タブ、「Visual Basic」の順に選択します。
「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
挿入タブ、標準モジュールの順に選択します。
ここでは「Module4(コード)」ダイアログボックスが表示されました。以下のコードを入力します。
Sub InputTodayDatetime()
Dim myCell As Range
Set myCell = ActiveCell
myCell.Value = Format(Now, "")
End Sub
上記は、アクティブセルに今日の日付を「年/月/日 時刻」の形式で出力するコードです。
ここで使用している「Now」はNOW関数であり、現在の年・月・日・時刻を表示する関数です。引数はありません。
また、「Format」とは、指定された書式に変換された文字列を表示するFormat関数を指します。
「Sub ユーザーフォームの実行(F5)」を選択し、画面右上の×ボタンを押します。
VBAを使って今日の日付が「年/月/日 時刻」の形式で表示されました。
作成した年月日が2023年1月25日14時53分だったので、「2023/1/25 14:53」の形式で表示されました。
今日の日付に曜日をつけて入力する
ExcelのVBAを使って今日の日付に曜日をつけて表示する方法について説明します。
Excelで開発タブをまだ表示していない場合は、上記「開発タブの表示方法」を参照してください。
今日の日付(曜日含む)を表示したいセル(B3)を選択します。
開発タブ、「Visual Basic」の順に選択します。
「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
挿入タブ、標準モジュールの順に選択します。
ここでは「Module4(コード)」ダイアログボックスが表示されました。以下のコードを入力します。
Sub InputTodayWeekday()
Dim myCell As Range
Set myCell = ActiveCell
myCell.Value = Format(Date, "yyyy/mm/dd (aaa)")
End Sub
上記は、アクティブセルに今日の日付を「年/月/日(曜日)」の形式で出力するコードです。
ここで使用している「Date」はDATE関数であり、「年」「月」「日」を引数にして日付を作成する関数です。「(曜日)」を付け加えることもできます。
年は「yyyy」、月は「mm」、日は「dd」、曜日は「(aaa)」にあたります。
また、「Format」とは、指定された書式に変換された文字列を表示するFormat関数を指します。
「Sub ユーザーフォームの実行(F5)」を選択し、画面右上の×ボタンを押します。
VBAを使って今日の日付が「年/月/日(曜日)」の形式で表示されました。
作成した年月日が2023年1月25日だったので、「2023/1/25(水)」の形式で表示されました。