こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。

VBA初心者です。(おそらく)基本的な質問で、申し訳ありません。
ユーザーフォーム1には、テキストボックス1とコマンドボタン1が配置されているとします。

Sub TEST ()
Dim N
Userform1.Show
MsgBox N
End Sub

Private Sub CommandButton1_Click()
Dim N
N = TextBox1.Text
UserForm1.Hide
End Sub

Sub TESTを実行した時に、ユーザーフォーム1からNの値を引き継ぐには、どうしたら良いのでしょうか?よろしくお願いします。

投稿日時 - 2006-04-06 11:05:05

QNo.2074879

暇なときに回答ください

質問者が選んだベストアンサー

'モジュールに変数宣言(グローバル変数)
'Public 宣言すると他のモジュールやフォームと
'共有できる変数になります。
Public AA As String

'sample
'A1 を実行する。

Sub A1()
Call A2
AA = InputBox("input", , AA)
End Sub

Sub A2()
AA = InputBox("input", , AA)
End Sub

投稿日時 - 2006-04-06 11:30:48

お礼

アドバイス通りに記述して、目的とする結果を得ることができました。ありがとうございました。

投稿日時 - 2006-04-06 11:41:49

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

Sub TEST ()
Dim N
Userform1.Show
N = UserForm1.TextBox1.Text
MsgBox N
End Sub

投稿日時 - 2006-04-06 11:38:37

お礼

なるほど、この様なシンプルな記述方法もあるのですね。アドバイス、ありがとうございました。

投稿日時 - 2006-04-06 11:43:29

変数Nがローカル変数のため、各処理内でしか有効でないからです。

なので、モジュールの先頭で変数を宣言し、Sub TESTとClickイベント内の
変数宣言部を削除すれば上手く動くと思います。

投稿日時 - 2006-04-06 11:25:20

お礼

アドバイス通りに記述して、目的とする結果を得ることができました。ありがとうございました。

投稿日時 - 2006-04-06 11:39:02

あなたにオススメの質問