串刺し計
このExcelマクロは、3つのワークシートの特定の範囲内のセルの値を合計して、最終的な合計値を計算するためのものです。
Sub 串刺し計()
Dim WorksWS() As Variant
ReDim WorksWS(1 To 3) '配列を再定義
WorksWS(1) = "4月!R2C3:R33C14" '集計元のワークシート名:セル範囲を指定
WorksWS(2) = "5月!R2C3:R33C14"
WorksWS(3) = "6月!R2C3:R33C14"
Worksheets("合計").Range("C2").Consolidate Sources:= _
Array(WorksWS()), Function:=xlSum '3つのシートを集計(合計:Sum)します。
Range("C2:C33").Select
Range("C33").Activate
ActiveCell.FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
Range("E15").Select
ActiveWindow.SmallScroll Down:=15
Range("C33").Select
Selection.AutoFill Destination:=Range("C33:N33"), Type:=xlFillDefault
Range("O2").Activate
ActiveCell.FormulaR1C1 = "=SUM(RC[-12]:RC[-1])"
Range("O2").Select
Selection.AutoFill Destination:=Range("O2:O33"), Type:=xlFillDefault
Range("O2:O33").Select
MsgBox "完了"
End Sub
解説
- まず、WorksWSという配列を作成します。これは、集計元のワークシートの名前と、そのワークシートの集計範囲を指定するために使用されます。ここでは、4月、5月、6月の3つのワークシートのそれぞれのセル範囲を指定しています。
- 次に、Worksheets(“合計”).Range(“C2”)を選択し、Consolidateメソッドを使用して、3つのワークシートの合計を計算します。この場合、ConsolidateメソッドのSourcesパラメータに、WorksWS配列を渡しています。FunctionパラメータはxlSumで、合計を計算するために使用されます。
- 次に、C2からC33までの範囲を選択し、SUM関数を使用して、最終的な合計値を計算するための式を入力します。C33からN33までの範囲を選択し、C33の式を自動的にコピーして貼り付けるために、AutoFillメソッドを使用します。
- 最後に、O2からO33までの範囲を選択し、SUM関数を使用して、各行の合計値を計算するための式を入力します。これにもAutoFillメソッドを使用して、各行に式を自動的にコピーして貼り付けます。
- 最後に、完了メッセージを表示するために、MsgBoxを使用します。
コメント