プロが教える店舗&オフィスのセキュリティ対策術

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の値を引き継ぐには、どうしたら良いのでしょうか?よろしくお願いします。

A 回答 (3件)

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



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

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

お礼日時:2006/04/06 11:39

'モジュールに変数宣言(グローバル変数)


'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
    • good
    • 12
この回答へのお礼

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

お礼日時:2006/04/06 11:41

Sub TEST ()


Dim N
Userform1.Show
N = UserForm1.TextBox1.Text
MsgBox N
End Sub
    • good
    • 8
この回答へのお礼

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

お礼日時:2006/04/06 11:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A