この記事では、ワークブック内のすべてのワークシートについて、定義された範囲のセルの合計を計算するカスタム関数を作成します。

この例の生データは、複数のシートで構成されています。各シートには、営業チームのデータが含まれています。これには、営業担当者の名前と、シート名で指定された日付に営業担当者が販売したアイテムの数が含まれます。

販売データは、すべてのワークシートで同じ順序でA6:B16の範囲にあります。

ArrowRaw

「メイン」シートには、さまざまな営業担当者による販売の合計数が必要です。総売上高を計算するには、ワークブックのすべてのシートから売上高を加算する必要があります。

ArrowMain

カスタム関数「SumRangeOfAllSheets」を使用して、さまざまな営業担当者による総売上高を計算しました。カスタム関数「SumRangeOfAllSheets」は、範囲を入力として受け取ります。

ArrowOutput

ロジックの説明

ワークブック内のすべてのワークシートについて、定義された範囲内のセルの値の合計を計算するカスタム関数「SumRangeOfAllSheets」を作成しました。カスタム関数「SumRangeOfAllSheets」は、範囲を入力として受け取ります。この関数は、すべてのワークシートの定義された範囲のセルに値を追加します。

コードの説明

WorksheetFunction.Sum WorksheetFunctionオブジェクトは、VisualBasicからExcelシート関数にアクセスするために使用されます。 ExcelシートのSUM関数を使用して、範囲内の値を追加しました。

InputRange.Address上記のコードは、「InputRange」範囲オブジェクトによって指定された範囲のアドレスを返すために使用されます。

コードについては以下に従ってください

Option Explicit

Function SumRangeOfAllSheets(InputRange As Range)

'Declaring variables

Dim i As Integer

Dim Total As Long

'Looping through the sheets in the worksheets collection starting from second sheet

For i = 2 To Worksheets.Count

'Calculating the sum for specified range of all the sheets

Total = Total + WorksheetFunction.Sum(Worksheets(i).Range(InputRange.Address))

Next

SumRangeOfAllSheets = Total

End Function

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください