計算に使用する XLA があり、これらの計算で使用する変数を Name Manager で作成したいと考えています。ranged という名前のものが既に存在するかどうかを確認し、存在しない場合はユーザーに値を割り当てさせたいと思います。Name Manager を設定するために使用している Sub() があります - 以下の例 - :
Public Sub SetNames()
On Error Resume Next
IsRangeName = CheckName("test")
If IsRangeName = Empty Then
Application.ThisWorkbook.Names.Add Name:="test", RefersTo:=0
End If
End Sub
「マクロ」メニューに移動して SetNames ルーチンを実行すると、動作し、Name Manager で test = 0 が設定されます。
ただし、関数を介してこれを実行し、変数が存在する場合は関数が名前マネージャーの変数を使用できるようにし、変数が存在しない場合は、それらの値を名前マネージャーの初期値に設定します。サブルーチン。
次のコードを実行しようとすると、Name Manager で値が設定されません。
Sub Function1()
Call SetNames()
-Do Other Things-
End Function
すべての名前はグローバル変数として宣言されています。
その目的は、ユーザーにアドインをインストールさせ、アドインを使用した最初の関数呼び出しで Name Manager を設定して、名前を初期化するか、ユーザーが初期値を設定できるようにすることです。ユーザーが [マクロ] リボン オプションを使用してサブルーチンを実行し、Name Manager 名を初期化することは望ましくありません。
これに関する助けをいただければ幸いです。