Microsoft Excel VBA - 串刺し計算を行う方法

◆概要

このページは、Excel VBAで串刺し計算を行う方法について記載しています。



Rangeオブジェクトの「Consolidate」メソッドを使用すると、複数のワークシートに同じ形式で入力されているデータを、ひとつのワークシートに集計することができます。  いわゆる「串刺し計算」を実行するのです。


ワークシートの各セルに、集計のための式を埋め込む必要はありません。集計したいワークシート名とセル範囲を指定して、Consolidateメソッドを実行するだけです。


この集計を実行するプロシージャは、次のようになります。

◆Sample
次の例では、Sheets2からSheet3までのセルの値を集計し、Sheet1に書き込みます。

Sub kusizashi()
    Worksheets("Sheet1").Range("A1").Consolidate Sources:= _
        Array("Sheet2!R1C1:R37C6", "Sheet3!R1C1:R37C6"), Function:=xlSum
End Sub
  

まず、Consolidateメソッドの先頭に、集計結果を入力するワークシート名とセル番地を指定します。そして、メソッドの名前付き引数Sourcesに、集計したいワークシート名とセル範囲を、「!」でつないで指定します。


複数の範囲名を一度に指定しますので、範囲をArray関数でセットします。ここでは、Sheet2とSheet3の同じセルをセットしています。なお、セル範囲は必ず「R1C1」形式で指定してください。


そして、引数Functionに、計算を実行する方法を定数で指定します。集計を行う場合はxlSumを指定します。これらの引数を設定して、Consolidateメソッドを実行すると、同じセル番地の数値データ同士が合計され、ワークシートSheet1に入力されます。



▼ページトップへ