この記事では、ダイナミックレンジの合計を生成するカスタム関数を作成します。

この記事の生データは乱数で構成されています。

ArrowMain

この例では、各列のすべてのセルの値の合計を計算します。各列には異なる数の値があります。

すべてのセルの値の合計を計算するカスタム関数「DynaSum」を作成しました。

ArrowOutput

カスタム関数「DynaSum」は、連続するすべてのセルの値の合計を計算します。この関数は、空白のセルが見つかるまですべての値を合計します。

定義された値を超える値を追加すると、それらの値は自動的に追加されます。

ArrowSecondOutput

コードの説明

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]までご連絡ください