私の理解が正しければ、(多くの既存のフィールドのうち) ユーザーが使用/初期化したフィールドを知りたいですか?
1) 変数にデフォルト値がなく、空でない値またはゼロでない値が必要な場合は、変数が空かゼロかを簡単に確認できます。ある場合は、初期化されていません。
If m_name = "" Then MsgBox "Variable is not initialized"
2)フィールドごとにブール値を作成して、fieldName_Initialized
フィールドごとに次のようにします。
private m_Name as string
private m_name_Initialized as Boolean
public property get Name() as string
Name = m_Name
end sub
public property let Name(sval as string)
m_name = sval
m_name_Initialized = True
end sub
3) リストを作成し、変数名が初期化されるときに変数名をリストに追加することができMicrosoft Scripting Runtime
ます。辞書が機能するように、必ず参照に追加してください。
Dim initialized As Dictionary
Set initialized = New Dictionary
private m_Name as string
private m_name_Initialized as Boolean
public property get Name() as string
Name = m_Name
end sub
public property let Name(sval as string)
m_name = sval
initialized.Add "m_name", True
end sub
次に、var が初期化されているかどうかを確認します。
If initialized.Exists("m_name") Then
' Var is initialized
4) #3 と同様ですが、ブール値の配列を使用します。インデックス 0のように、特定の var を特定のインデックスにm_name
関連付けます。このようにして、変数名を制御する手間を省きます (変数の名前を取得できないことがわかっている限り、メンテナンスの原因が増えます)。
個人的には #1 が最もシンプルですが、特定の状況では不可能な場合があります。#1 が当てはまらない場合、私は個人的に #2 を選びます。変数自体から変数名の文字列表現を取得する方法を誰かが理解できない場合は、#3 が優先されます。