2023/10/26ExcelのVBAを使って日付を取得する方法ExcelでVBAを使うと、繰り返し行われる日付に関する作業を自動化することができ、仕事を効率的に行うことができます。この記事では、ExcelでVBAを使って日付を取得する方法について解説します。現在の日時が特定の期間内にあるかどうかを表示するVBAや、指定した日付から前後の日を表示するVBAなどを詳しくご紹介します。今日の日付を取得する現在の日時が特定の期間内にあるかどうかを表示する指定した日付から前後の日を表示するDATE関数を利用して年/月/日を取り出す年を取り出す月を取り出す日を取り出すExcelのVBAを使って日付を取得する方法ExcelではVBAを使って日付を取得することができます。以下のようなことをマクロで行うことができます。今日の日付を取得する現在の日時が特定の期間内にあるかどうかを表示する指定した日付から前後の日を表示する基準の日付を指定して日を計算するDATE関数を利用して年/月/日を取り出す詳しくは以下でそれぞれ解説します。今日の日付を取得するExcelのVBAを使って今日の日付を取得することができます。以下のようなパターンで取得することが可能です。今日の日付を「年/月/日」で入力する今日の日付を和暦で入力する今日の日付を時刻を含めて入力する今日の日付に曜日をつけて入力する以下の記事では、指定したセルに今日の日付を取得するVBAについて解説しています。現在の日時が特定の期間内にあるかどうかを表示する以下では、特定の期間内(2023年10月26日の13時00分00秒~2023年10月31日の23時59分59秒)に現在の日時が含まれているかどうかを確認し、その結果を表示するVBAの方法を解説します。VBAを利用するには開発タブを表示させる必要があります。開発タブの表示方法については、以下の記事を参照してください。Basicの順に選択します。Applications」ダイアログボックスが表示されました。1挿入タブ、2標準モジュールの順に選択します。標準モジュールが表示されました。標準モジュールに以下のコードをコピーして貼り付けます。SubこのVBAコード「CheckDateRange」は、現在の日時が特定の期間内にあるかを確認するマクロです。具体的には、2023年10月26日の13時00分00秒から2023年10月31日の23時59分59秒までの範囲内に現在の日時が含まれているかどうかを判定しています。コードは、現在の日時をd1、期間の開始日時をd2、終了日時をd3として変数に代入しています。d1がd2とd3の範囲内にあるかどうかを確認しています。範囲内にあれば「期限内です」というメッセージを、そうでなければ「期限外です」という内容のメッセージボックスを呼び出します。1ファイルタブ、2「Book1の上書き保存」の順に選択します。「名前を付けて保存」ダイアログボックスが表示されました。デスクトップ)を選択します。2ファイル名に「現在の日時が特定の期間内にあるかどうかを表示する」を入力します。マクロ有効テンプレート」を選択します。4保存ボタンを押します。Applications」を閉じ、1開発タブ、2マクロの順に選択します。「マクロ」ダイアログボックスが表示されました。1「CheckDateRange」を選択し、2実行ボタンを押します。Excel」ダイアログボックスが表示されました。現在日時は「2023年10月26日12:42:05」でしたので、期限外だということが判明しました。現在日時が「2023年10月26日18:07:44」になると、期限内の表示になりました。指定した日付から前後の日を表示する例えば、試験応募の締め切りを○日前、合格発表を○日後という日付のメッセージをマクロにしたい場合、VBAコードを使って実行することができます。以下では、指定した日付から前後の日を表示させるVBAについてご紹介します。Basicを開く方法、VBA入力後にファイルを保存する方法、マクロの実行方法については上記「現在の日時が特定の期間内にあるかどうかを表示する」セクションを参照してください。標準モジュールには以下のコードをコピーして貼り付けます。SubこのVBAコード「DisplayAdjacentDates」は、指定した日付「2023/10/26」を基準にして、試験の締切日と合格発表の日を計算し、それらの日付を表示するマクロです。コード内で、d1に「2023/10/26」の日付が直接入力されています。続いて、d2はd1から7日前、すなわち試験の締切日を示し、d3はd1から30日後、すなわち合格発表の日を示しています。最後に、これらの計算結果をメッセージボックスに表示しています。マクロを実行すると、指定した日付(2023/10/26)から「試験の締切は2023/10/19(7日前)」「合格発表は2023/11/25(30日後)」という内容のメッセージボックスが表示されました。DATE関数を利用して年/月/日を取り出す以下では、DATE関数を利用して年、月、日を取り出すVBAをご紹介します。メッセージボックスは、必要な情報のみに絞って表示することで見栄えが良くなります。Basicを開く方法、VBA入力後にファイルを保存する方法、マクロの実行方法については上記「現在の日時が特定の期間内にあるかどうかを表示する」セクションを参照してください。年を取り出す現在が「2023年10月26日」だった場合、年だけを取り出して「現在は2023年です」と表示することが可能です。標準モジュールには以下のコードをコピーして貼り付けます。Sub上図の「ExtractYear」というVBAコードは、現在の日付から年だけを取り出し、それを「現在は〇〇年です」という形式のメッセージボックスで表示するマクロです。このコードは、まずYEAR関数で現在の日付から年を取得し、それを変数「CurrentYear」に保存します。YEAR関数の書式は「=YEAR(シリアル値)」で、括弧内にはDate(今日の日付)が入っています。その後、この年を「現在は〇〇年です」という形式でメッセージボックスに表示します。マクロを実行すると、「現在は2023年です」のメッセージが表示されました。月を取り出す現在が「2023年10月26日」だった場合、月だけを取り出して「現在は10月です」と表示することが可能です。標準モジュールに以下のコードをコピーして貼り付けます。Sub上図の「ExtractMonth」というVBAコードは、現在の日付から月だけを取り出し、それを「現在は〇〇月です」という形式のメッセージボックスで表示するマクロです。このコードは、まずMONTH関数で現在の日付から月を取得し、それを変数「CurrentMonth」に保存します。MONTH関数の書式は「=MONTH(シリアル値)」で、括弧内にはDate(今日の日付)が入っています。その後、この月を「現在は〇〇月です」という形式でメッセージボックスに表示します。マクロを実行すると、「現在は10月です」のメッセージが表示されました。日を取り出す現在が「2023年10月26日」だった場合、日だけを取り出して「現在は26日です」と表示することが可能です。標準モジュールに以下のコードをコピーして貼り付けます。Sub上図の「ExtractDay」というVBAコードは、現在の日付から日だけを取り出し、それを「現在は〇〇日です」という形式のメッセージボックスで表示するマクロです。このコードは、まずDAY関数で現在の日付から月を取得し、それを変数「CurrentDay」に保存します。DAY関数の書式は「=DAY(シリアル値)」で、括弧内にはDate(今日の日付)が入っています。その後、この日にちを「現在は〇〇日です」という形式でメッセージボックスに表示します。マクロを実行すると、「現在は26日です」のメッセージが表示されました。問題は解決できましたか?記事を読んでも問題が解決できなかった場合は、無料でAIに質問することができます。回答の精度は高めなので試してみましょう。私が楽しむ趣味の一つは、高速道路でのドライブです。車を走らせることは、私にとって心地よいリラクゼーションになっています。私の好みの食事は韓国料理です。様々な種類の料理を試すのも好きで、毎日料理作りも楽しんでいます。私が本サイトで記事を書き始めてから既に6年以上経ちますが、これほど長く続けられたのも皆様のおかげです。ありがとうございます。コメントこの記事へのコメントをお寄せ下さい。