Excel VBA | 配列を使った 複数列の異なる計算式 の処理テンプレ

Excel VBA VBA
スポンサーリンク

「VBAで配列を使って複数列に異なる計算式を適用するテンプレート」を紹介します。
Excelシート上のデータを配列に読み込み、列ごとに異なる処理をまとめて実行する基本形です。


スポンサーリンク

VBA テンプレート例

Sub MultiColumnCalcTemplate()

    Dim ws As Worksheet
    Dim rng As Range
    Dim arr As Variant
    Dim resultArr() As Variant
    Dim i As Long, j As Long
    
    ' 対象シートと範囲を指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A2:C10") ' A~C列のデータ
    
    ' 配列に読み込み
    arr = rng.Value
    
    ' 結果配列を同じサイズで用意
    ReDim resultArr(1 To UBound(arr, 1), 1 To UBound(arr, 2))
    
    ' 各列ごとに異なる計算式を適用
    For i = 1 To UBound(arr, 1)
        ' 1列目 → 2倍
        resultArr(i, 1) = arr(i, 1) * 2
        
        ' 2列目 → 平方
        resultArr(i, 2) = arr(i, 2) ^ 2
        
        ' 3列目 → 10を引く
        resultArr(i, 3) = arr(i, 3) - 10
    Next i
    
    ' 結果をシートに書き戻し(例: E列以降)
    ws.Range("E2").Resize(UBound(resultArr, 1), UBound(resultArr, 2)).Value = resultArr

End Sub
VB

テンプレのポイント

  • 配列に一括読み込み → 計算 → 一括書き戻し が高速で効率的
  • ReDim resultArr(...) で元データと同じサイズの結果配列を用意
  • 列ごとに処理を分けたい場合は resultArr(i, 列番号) に個別の式を記述
  • 計算式部分を関数化すればさらに柔軟に拡張可能

応用アイデア

  • 列ごとの処理を Select Case で分岐させる
  • 計算式を 配列やDictionaryにまとめて管理し、ループで適用する
  • 元データと結果を別シートに出力して比較できるようにする

👉 このテンプレートは「列ごとに固定の計算式」を想定しています。

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