• ベストアンサー

エクセル自作関数の再計算

エクセルでVBAを利用して自作関数を作りました。 この関数はシートの値の内容によって異なる結果を返す内容になっています。 で、この関数をセルから呼び出しているのですが、シートの値を変更した時に、もともと用意されている関数なら自動的に再計算されますが、自作関数は再計算されませんでした。 仕方がないので、再計算させたいときには関数を使用しているセルを編集状態にして何も編集せずにenterを押し再計算させています。 これを何かの機能で再計算させる方法を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

こんにちは。 その関数にVolatileメソッドをいれて自動再計算関数にしてみてください。 例えば、 -------------------------------------------- Function myFunc(a As Range, b As Range)   Application.Volatile   myFunc = a.Value + b.Value End Function -------------------------------------------- 以上です。  

arakororin
質問者

お礼

コニチハ。 Volatile メソッド ユーザー定義関数を自動再計算関数にします。自動再計算関数は、ワークシートのいずれかのセルで計算が行われるたびに再計算を行います。これに対して非自動再計算関数では、入力した変数の値が変わったときにだけ再計算を行います。 なるほど。これを書かないということは、「再計算をしない」と明示的に指定しているようなものなのですね。ばっちり対応できました。 VBA自体は自作関数は素人くんなので大変助かりました。ありがとうございました。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

なぜ計算されないかは分りませんが... F9(再計算)キーで計算できませんか?

arakororin
質問者

お礼

ありがとうございます。 今回の例では効き目なしでした…。 これは普通の関数のときに使うのですか?

関連するQ&A

専門家に質問してみよう