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にまとめて管理し、ループで適用する
  • 元データと結果を別シートに出力して比較できるようにする

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

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました