Excel VBAを活用すると、特定の日付に一致する行のデータを自動処理することが可能です。本記事では、指定された日付と一致する行のC列の数式を値として貼り付けるVBAコードを解説します。
VBAで日付を検索し、数式を値に変換する方法
今回のVBAコードは、以下の流れで処理を行います。
- A1セルに入力された日付を取得
- B列の中からA1の値と一致するセルを検索
- 一致した行のC列の数式を値として貼り付け
VBAコード
以下のコードをVBAエディタ(Alt + F11
)で入力し、実行してください。
Sub ConvertFormulaToValue()
Dim ws As Worksheet
Dim searchDate As Date
Dim cell As Range
' シートの指定
Set ws = ThisWorkbook.Sheets("Sheet1") ' 適宜シート名を変更
' A1に入力された日付を取得
searchDate = ws.Range("A1").Value
' B列のデータ範囲(B1:B31)を検索
For Each cell In ws.Range("B1:B31")
If cell.Value = searchDate Then
' C列の数式を値に変換
cell.Offset(0, 1).Value = cell.Offset(0, 1).Value
End If
Next cell
' メッセージを表示
MsgBox "処理が完了しました", vbInformation
End Sub
コードの解説
Set ws = ThisWorkbook.Sheets("Sheet1")
:対象のシートを指定(必要に応じてシート名を変更してください)。searchDate = ws.Range("A1").Value
:A1セルの値(日付)を取得。For Each cell In ws.Range("B1:B31")
:B1~B31の範囲で検索を実施。If cell.Value = searchDate Then
:A1の日付と一致する行を判定。cell.Offset(0, 1).Value = cell.Offset(0, 1).Value
:C列の数式を値に変換。MsgBox "処理が完了しました", vbInformation
:処理が完了したことを通知。
実行方法
- Excelの「開発」タブから「Visual Basic」を開く(
Alt + F11
) - 「挿入」→「標準モジュール」を選択
- 上記のコードを貼り付ける
- 「実行」ボタン(または
F5
キー)でコードを実行
まとめ
- VBAを使うことで、特定の日付に一致する行のC列の数式を値として簡単に変換できる。
- コードはシート名を適宜変更する必要がある。
- VBAの基本的な知識があれば、応用して他の操作も自動化できる。
Excel VBAを活用すれば、繰り返し作業の効率化が可能です。ぜひ活用してみてください。
コメント