- 公開日:
エクセルのマクロを使って自動入力で日付を固定する方法
Excelでは関数を使って日付を自動入力できます。
ただし関数を使うと、ファイルを開く度に当日の日付に更新されてしまうため「いつ作成したのか」「いつ入力したデータなのか」などが分かりづらくなります。
この記事では、エクセルのマクロを使って自動入力で日付を固定する方法をご紹介します。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
マクロを使って自動入力で日付を固定する方法
自動入力された日付をマクロを使って固定する方法をご紹介します。
自動入力した日付を固定する方法としては、TODAY関数で取得した今日の日付を別のセルにコピーする方法があります。
例えば上の画像では、B1セルのTODAY関数で取得した今日の日付をB2セルに値としてコピーしています。
マクロなのでセル番地を簡単に変更して任意の位置で日付を固定することが可能です。
方法の詳細は以下のとおりです。
今回はVBAを使って設定を行います。
VBAの設定には「開発タブ」が必要ですが、デフォルトでは表示されていないため下記の記事を参考に設定を行いましょう。
任意のセルにTODAY関数を入力しておきましょう。
今回はB1セルに「=TODAY()」と入力し、Enterを押します。
次にマクロを設定します。
①開発タブ、②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セル)の場所を変更すれば、任意の位置に自動入力した日付を固定できます。