/ / Excel VBAの揮発性関数

Excel VBAの揮発性関数

デフォルトでは、UDFの(ユーザー定義関数)は Excel VBA 揮発性ではありません。それらは、関数の引数のいずれかが変更されたときにのみ再計算されます。 揮発性関数 ワークシート上の任意のセルで計算が行われるたびに再計算されます。これをもう少し説明する簡単な例を見てみましょう。

1. Visual Basic Editorを開き、Insert、Moduleをクリックします。

選択されたセルとこのセルの下のセルの合計を返すMYFUNCTIONという関数を作成します。

2.次のコード行を追加します。

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

3.他のExcel機能と同様に、この機能を使用することができます。

Excel VBAでの不揮発性機能

4.これは不揮発性の機能です。不揮発性関数は、関数の引数のいずれかが変更されたときにのみ再計算されます。セルB2の値を8に変更します。

関数

5.セルB3の値を11に変更します。

その他のセルの変更

説明:シート上の他のセルが変更されると、不揮発性関数は再計算されません。

6.次のように関数を更新して、関数をvolatileにします。

Function MYFUNCTION(cell As Range)

Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

7.セルB3の値を12に変更します。

結果:

Excel VBAの揮発性機能

注:関数を再度入力して、揮発性にする必要があります(または、数式バーにカーソルを置き、Enterキーを押してリフレッシュしてください)。

また読む: