UserForm2をshowして、UserForm2側から
listarrを参照したいですが、UserForm2で空になってしまいます。
こういったことはできないのでしょうか。。
▼Sheet1のVBAの記述
------------------------------------------
Public listarr As Variant
Private Sub TextBox1_LostFocus()
listarr = Array("AAA", "BBB", "CCC", "DDD", "EEE", "FFF")
UserForm2.Show
End Sub
------------------------------------------
▼UserFormの記述
------------------------------------------
Private Sub UserForm_Initialize()
With ListBox1
.List = listarr
End With
End Sub
------------------------------------------
listarrはPublicで宣言されているので、どこに記述してもかまいません。
参照する側が 「どこの」というのをつけないと ダメなだけです。
.List = listarr
↓
.List = Sheets("Sheet1").listarr
できます。
変数の宣言を、シートではなく、標準モジュールでする必要があります。
「プロジェクト」で、ブックを右クリックして、「挿入」→「標準モジュール」と選びます。
ツリーの「標準モジュール」の下に「Module1」というのができるので、その中で Public で宣言してください。
http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/eg5.shtml
↑の「変数の適用範囲(モジュール間)」のあたりを参考にしてください。
ありがとうございます!
listarrはPublicで宣言されているので、どこに記述してもかまいません。
参照する側が 「どこの」というのをつけないと ダメなだけです。
.List = listarr
↓
.List = Sheets("Sheet1").listarr
ありがとうございます‼︎
なんと、シートでパブリック宣言した場合は、オブジェクト指定する仕様は、まったく知りませんでした!
検証してみます!
ありがとうございます‼︎
2013/11/05 20:05:41なんと、シートでパブリック宣言した場合は、オブジェクト指定する仕様は、まったく知りませんでした!
検証してみます!