Microsoft ExcelでVBAを使用して動的面積の合計を生成
この記事では、ダイナミックレンジの合計を生成するカスタム関数を作成します。
この記事の生データは乱数で構成されています。
この例では、各列のすべてのセルの値の合計を計算します。各列には異なる数の値があります。
すべてのセルの値の合計を計算するカスタム関数「DynaSum」を作成しました。
カスタム関数「DynaSum」は、連続するすべてのセルの値の合計を計算します。この関数は、空白のセルが見つかるまですべての値を合計します。
定義された値を超える値を追加すると、それらの値は自動的に追加されます。
コードの説明
Set Rng = Application.Caller上記のコードは、カスタム関数を含むセルをRangeオブジェクトとして割り当てるために使用されます。
コードについては以下に従ってください
Option Explicit Function DynaSum(Optional Rng As Range) 'Declaring variables Dim Total As Double Dim LngRow As Long Dim LngCol As Integer 'Refresh function when value in worksheet is changed Application.Volatile 'Assigning range if Range is not specified in the function If Rng Is Nothing Then Set Rng = Application.Caller End If 'Getting the column and row number LngCol = Rng.Column LngRow = Rng.Row - 1 'Looping through all the cells in the column until blank cell is encountered Do Until IsEmpty(Cells(LngRow, LngCol)) Total = Total + Cells(LngRow, LngCol) LngRow = LngRow - 1 If LngRow = 1 Then Exit Do Loop 'Getting output DynaSum = Total End Function
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください