• 公開日:

エクセルのマクロを使って自動入力で日付を固定する方法

Excelでは関数を使って日付を自動入力できます。

ただし関数を使うと、ファイルを開く度に当日の日付に更新されてしまうため「いつ作成したのか」「いつ入力したデータなのか」などが分かりづらくなります。

この記事では、エクセルのマクロを使って自動入力で日付を固定する方法をご紹介します。

Excelを使った日付選択のマクロを無料でダウンロード!

Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。

マクロを使って自動入力で日付を固定する方法

自動入力された日付をマクロを使って固定する方法をご紹介します。

マクロで日付を固定

自動入力した日付を固定する方法としては、TODAY関数で取得した今日の日付を別のセルにコピーする方法があります。

例えば上の画像では、B1セルのTODAY関数で取得した今日の日付をB2セルに値としてコピーしています。

マクロなのでセル番地を簡単に変更して任意の位置で日付を固定することが可能です。

方法の詳細は以下のとおりです。

開発タブを表示する

今回はVBAを使って設定を行います。

VBAの設定には「開発タブ」が必要ですが、デフォルトでは表示されていないため下記の記事を参考に設定を行いましょう。

エクセルの開発タブを表示する方法

TODAY関数を入力

任意のセルにTODAY関数を入力しておきましょう。

今回はB1セルに「=TODAY()」と入力し、Enterを押します。

Visial Basicを選択する

次にマクロを設定します。

開発タブ、②Visual Basicの順に選択します。

標準モジュールを挿入する

「Microsoft Visual Basic for Applications」ダイアログボックスが表示されます。

挿入、②標準モジュールの順に選択します。

コードを貼り付ける

標準モジュールが挿入されました。

①以下のコードをコピーして貼り付け、②保存を選択します。

Sub 自動入力の日付を固定する()

    ' B1セルから日付を取得
    Dim sourceDate As Date
    On Error Resume Next
    sourceDate = CDate(ThisWorkbook.Sheets("Sheet1").Range("B1").Value)
    On Error GoTo 0

    ' B2セルに日付を設定
    ThisWorkbook.Sheets("Sheet1").Range("B2").Value = sourceDate

End Sub

上記は「Sheet1のB1セルに入力したTODAY関数の日付を、B2セルに値としてコピーする」という意味のコードで日付を固定するようになっています。

各シート名やセル番地は任意のものに変更可能です。

マクロ有効ブックで保存する

「名前を付けて保存」ダイアログボックスが表示されます。

保存場所(例:デスクトップ)を選択し、②ファイル名(例:自動入力の日付を固定する)を入力します。

ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。

マクロを選択する

以上でマクロの設定が完了しました。

シートに戻り、①開発タブ、②マクロの順に選択します。

マクロを実行する

「マクロ」ダイアログボックスが表示されました。

マクロ(例:自動入力の日付を固定する)を選択し、②実行ボタンを押します。

日付がコピーされる

上記の画像のように、TODAY関数で入力した日付がB2セルに固定(コピー)されれば問題なく設定ができています。

日付をコピーするセル(今回はB2セル)の場所を変更すれば、任意の位置に自動入力した日付を固定できます。