- ベストアンサー
エクセル自作関数の再計算
エクセルでVBAを利用して自作関数を作りました。 この関数はシートの値の内容によって異なる結果を返す内容になっています。 で、この関数をセルから呼び出しているのですが、シートの値を変更した時に、もともと用意されている関数なら自動的に再計算されますが、自作関数は再計算されませんでした。 仕方がないので、再計算させたいときには関数を使用しているセルを編集状態にして何も編集せずにenterを押し再計算させています。 これを何かの機能で再計算させる方法を教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 その関数にVolatileメソッドをいれて自動再計算関数にしてみてください。 例えば、 -------------------------------------------- Function myFunc(a As Range, b As Range) Application.Volatile myFunc = a.Value + b.Value End Function -------------------------------------------- 以上です。
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
回答No.1
なぜ計算されないかは分りませんが... F9(再計算)キーで計算できませんか?
質問者
お礼
ありがとうございます。 今回の例では効き目なしでした…。 これは普通の関数のときに使うのですか?
お礼
コニチハ。 Volatile メソッド ユーザー定義関数を自動再計算関数にします。自動再計算関数は、ワークシートのいずれかのセルで計算が行われるたびに再計算を行います。これに対して非自動再計算関数では、入力した変数の値が変わったときにだけ再計算を行います。 なるほど。これを書かないということは、「再計算をしない」と明示的に指定しているようなものなのですね。ばっちり対応できました。 VBA自体は自作関数は素人くんなので大変助かりました。ありがとうございました。