ユーザー関数を自動再計算関数にするには?

Question 42.4 Excel VBA Borad (掲示板)より Previous Next
ユーザー関数を使って、シートの羅列されているデータを検索して、取り出そうとしています。
シート s_indexのA列にキー部分のデータを作成してあって、シート s_dataにデータがあります。 こんな関数です。
Function Kensaku(f_Jcd, f_Kamoku, f_retsu)
Dim W_Index As String, W_Match As Single, W_Kekka As Single
    On Error GoTo NASHI
    W_Index = f_Jcd & f_Kamoku
s_indexのA列から一致する行をさがす。
    W_Match = Application.WorksheetFunction. _
                Match(W_Index, Worksheets("s_index").Range("A:A"), 0)
    Kensaku = Application.WorksheetFunction. _
                Index(Worksheets("s_data").Range("a1:by6500"), W_Match, f_retsu)
    Exit Function
検索不可能な場合
NASHI:
   なしの処理
End Function
中身はこんなもので、関数としては動きますが Excel2000で動かすと、再計算ができないんです。
Micrsoftサポートには、「ユーザー定義関数内で名前作成した場合の再計算について」という題で、index関数を使うとできないみたいな感じなのですが、何かいい方法はないでしょうか?
Answer   2001.6.6 ムラジロ~
中身は見ていませんが
    Application.Volatile
を頭に入れてもダメでしょうか?
Volatileメソッド 【注:WebMaster】

ユーザー定義関数を自動再計算関数にする。この関数にしておくと、セルで計算が行われるたびに再計算される。

構文
expression.Volatile(Volatile)

expression  Applicationオブジェクトを表すオブジェクト式を必ず指定する
Volatile   True : 自動再計算関数(規定値)、 False :非自動再計算関数

ユーザー定義関数の中(冒頭)に記述する。
できました
ムラジロ~さんありがとうございました。もっと勉強します。

 

Excel VBA Macro