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

  1. Visual Basicエディターおよび挿入モジュール]をクリックします。

選択したセルと、このセルの下のセルの合計を返しますMyFunctionのと呼ばれる関数を作成します。

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

Function MYFUNCTION(cell As Range)

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

End Function

3.今、あなたは、他のExcel関数と同じように、この機能を使用することができます。

Non-volatile Function in Excel VBA

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

Function’s Argument Changes

5.次に11に、セルB3の値を変更

Any Other Cell Changes

説明:シート上の任意の他の細胞が変化した場合、不揮発性関数が再計算されません。

6.アップデート機能としては、関数が揮発性にするために、次のとおりです。

Function MYFUNCTION(cell As Range)

Application.Volatile

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

End Function

7.変更12に、セルB3の値

結果:

Volatile Function in Excel VBA

注:あなたはそれを揮発性にする(または数式バーにカーソルを置き、Enterキーを押してそれを更新)するために、再度関数を入力する必要があります。