Excelで日付ごとに別シートの数値を自動入力する方法

Excel

Excelで日付ごとに別シートの数値を自動でB列に入力したい場合、関数だけでは制限がありますが、VBA(マクロ)を使うことで指定した時間や日付ごとに自動入力が可能です。この記事では、初心者でもわかりやすく手順を解説します。

関数だけでできる基本の方法

単純にリアルタイムで別シートの値を参照する場合は、B列に以下のような参照式を入力できます。

=別シート名!C1

しかし、この方法では数値は常に最新の値を表示するだけで、過去の日付に自動で固定されることはありません。

VBAを使った自動入力の仕組み

過去の日付にその日の値を固定してB列に入力したい場合は、VBAを使ってマクロを作成します。例えば、日付ごとに別シートのセル値をコピーするコードは以下のようになります。

Sub DailyValueCopy()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Dim i As Long
    For i = 2 To lastRow
        If Cells(i, "A").Value = Date Then
            Cells(i, "B").Value = Worksheets("参照シート").Range("C1").Value
        End If
    Next i
End Sub

このマクロを毎日実行することで、その日の値をB列に自動で入力できます。

タスクスケジューラで毎日実行する方法

マクロを自動で実行したい場合は、Excelを開いてマクロを動かす必要があります。Windowsのタスクスケジューラと組み合わせると、指定した時間にExcelファイルを開き、マクロを実行させることが可能です。

具体的には、マクロ有効ブックを開いたときに自動でDailyValueCopyマクロが動くようにWorkbook_Openイベントに記述します。

注意点とベストプラクティス

VBAマクロを使用する場合は、セキュリティ設定でマクロを有効にする必要があります。また、参照するセルやシート名を間違えないように注意してください。

定期的に値をコピーするためには、タスクスケジューラの設定やマクロ内の日付条件を正確に設定することが重要です。

まとめ

ExcelでA列の日付ごとに別シートの数値をB列に自動入力するには、関数だけでは限界があるため、VBAマクロを使うのが効果的です。マクロを設定し、タスクスケジューラで毎日実行することで、日付ごとの数値を自動で記録でき、効率的なデータ管理が可能になります。

コメント

タイトルとURLをコピーしました