Excel VBAで日付に一致する行の数式を値に変換する方法

Office系ソフトウェア

Excel VBAを活用すると、特定の日付に一致する行のデータを自動処理することが可能です。本記事では、指定された日付と一致する行のC列の数式を値として貼り付けるVBAコードを解説します。

VBAで日付を検索し、数式を値に変換する方法

今回のVBAコードは、以下の流れで処理を行います。

  1. A1セルに入力された日付を取得
  2. B列の中からA1の値と一致するセルを検索
  3. 一致した行の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:処理が完了したことを通知。

実行方法

  1. Excelの「開発」タブから「Visual Basic」を開く(Alt + F11
  2. 「挿入」→「標準モジュール」を選択
  3. 上記のコードを貼り付ける
  4. 「実行」ボタン(またはF5キー)でコードを実行

まとめ

  • VBAを使うことで、特定の日付に一致する行のC列の数式を値として簡単に変換できる。
  • コードはシート名を適宜変更する必要がある。
  • VBAの基本的な知識があれば、応用して他の操作も自動化できる。

Excel VBAを活用すれば、繰り返し作業の効率化が可能です。ぜひ活用してみてください。

コメント

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