要するに、UDF の入力パラメーターの 1 つではない依存関係を定義する方法はありますか?
これは私の最初の投稿です。私は Excel で VBA を学んでおり、非常に才能のあるコーダーがここに投稿しているのを多数見てきました。
セル範囲に依存する UDF を作成する方法を知りたいのですが、ユーザーはこのセル範囲を入力する必要はありません。簡単な例は、常にセル "A1" を受け取り、入力を A1 に連結して出力する関数です。範囲が UDF 内で静的に参照されている場合、ユーザーがセル "A1" を消去すると、範囲は "#REF" に変わりません。
A1 = "Hello" で、入力が "World" の場合、出力を "Hello World" にしたいと考えています。
関数内で関数を呼び出すことができ、それに基づいて依存関係ツリーが構築されるのではないかと考えましたが (以下を参照)、最初に呼び出された関数 (in1) の入力パラメーターを変更しない限り、テスト関数は更新されません。
テストコード:
Public Function test(in1 As String) As String
test = testdep(in1, Sheets("Sheet1").Range("A1"))
End Function
Private Function testdep(in1 As String, rng As Range)
testdep = rng.Value & in1
End Function
アイデア?
Edit1: より具体的には、セル A1 は入力パラメーターではありませんが、セル "A1" が変更されたときに出力値を更新する関数が必要です。たとえば、A1 を "Hello" ではなく "blah" に変更すると、値は "blah World" に更新されます。関数を揮発性にしますが、そのような関数がたくさんあり、計算速度が非常に遅くなります。