人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

excelvbaでlistarrという配列をpublicで宣言しました。
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
------------------------------------------

●質問者: FujiiRock
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●0ポイント

できます。
変数の宣言を、シートではなく、標準モジュールでする必要があります。

「プロジェクト」で、ブックを右クリックして、「挿入」→「標準モジュール」と選びます。
ツリーの「標準モジュール」の下に「Module1」というのができるので、その中で Public で宣言してください。

http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/eg5.shtml
↑の「変数の適用範囲(モジュール間)」のあたりを参考にしてください。


FujiiRockさんのコメント
ありがとうございます!

2 ● きゃづみぃ
●100ポイント ベストアンサー

listarrはPublicで宣言されているので、どこに記述してもかまいません。

参照する側が 「どこの」というのをつけないと ダメなだけです。

.List = listarr



.List = Sheets("Sheet1").listarr


FujiiRockさんのコメント
ありがとうございます?? なんと、シートでパブリック宣言した場合は、オブジェクト指定する仕様は、まったく知りませんでした! 検証してみます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ