0
ユーザーフォームの初期化中に配列を設定しようとしています。私は別のユーザーフォームで作成されたパブリック変数で配列を埋めています。問題は、フォームの初期化中に配列の値を設定しようとすると、値が設定されないということです。ボタンをクリックして同じコードを使用すると、魅力的に機能します。フォームの初期化中に別のフォームのpublic変数からローカル変数を設定する
コード
Private Sub UserForm_Initialize()
'Declare local Variables
Dim targetGrades(1 To 5) As String
'Set Variables
targetGrades(1) = frmSettingsSetup.g1
targetGrades(2) = frmSettingsSetup.g2
targetGrades(3) = frmSettingsSetup.g3
targetGrades(4) = frmSettingsSetup.g4
targetGrades(5) = frmSettingsSetup.g5
End Sub
私はfrmSettingsSetup(G1-G5)から引っ張られているパブリック変数がそうであるように、変数が "" =あるコードを実行します。フォームの初期化中に別のフォームから変数を呼び出す方法はありますか?
なぜゲッタとセッタを使用しないのですか? [this](http://stackoverflow.com/questions/29257127/vba-complicated-getter-setter-syntax)の質問に対する回答を参照してください。他のフォームを初期化するときに – Taelsin
は 'frmSettingsSetup'を開いていますか?そうでなければ、それは何も価値がないので、値を得ません。フォームはクラスであり、オープンされていない場合は表示され、インスタンス値は取得されません。 – cyboashu
frmSettingsSetupは隠されていますが、他のフォームを初期化すると 'frmSettingsSetup.Hide'が閉じません。 – Wally