Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3353 / 13644 ツリー ←次へ | 前へ→

【62759】userformの値渡し方 じゅんち 09/8/28(金) 11:16 質問[未読]
【62761】Re:userformの値渡し方 シスタークエスト 09/8/28(金) 11:34 発言[未読]
【62762】Re:userformの値渡し方 bykin 09/8/28(金) 21:44 回答[未読]

【62759】userformの値渡し方
質問  じゅんち E-MAIL  - 09/8/28(金) 11:16 -

引用なし
パスワード
   userformの中のtextboxに入力された値をuserformから出たメインのコードで使用したいのですが値の渡し方を教えてください。

【62761】Re:userformの値渡し方
発言  シスタークエスト  - 09/8/28(金) 11:34 -

引用なし
パスワード
   極端かもしれませんが。


標準モジュール

Public グローバル変数 As String

Sub aaaaaa()
グローバル変数 = ""
UserForm1.Show
MsgBox グローバル変数
End Sub

フォームモジュール

Private Sub UserForm_Activate()
グローバル変数 = TextBox1.Value
Unload Me
End Sub

Private Sub UserForm_Initialize()
TextBox1.Value = "あいうえお"
End Sub

他、フォームをUnloadしないで、Hideで済ませれば、
msgbox Userform1.textbox1.value
で、直接参照できます。

尚、メインプログラム終了時には、
Unload userform1
として、解放させる事は必要かと思います。

【62762】Re:userformの値渡し方
回答  bykin  - 09/8/28(金) 21:44 -

引用なし
パスワード
   こんばんわ。

ユーザーフォームのプロパティを自作したらどーでっか?
↓こんなの(UserForm1にTextBox1とcmdOK・cmdCancelの2個のボタンを配置)

<フォームモジュール>
Public Canceled As Boolean

Public Property Get TxtValue() As String
  TxtValue = Me.TextBox1.Value
End Property

Private Sub cmdCancel_Click()
  Me.Hide
End Sub

Private Sub cmdOK_Click()
  Canceled = False
  Me.Hide
End Sub

Private Sub UserForm_Initialize()
  Canceled = True
End Sub

<標準モジュール>
Sub test()
  Dim TargetValue As String
  
  Load UserForm1
  With UserForm1
    .Show
    If Not .Canceled Then
      TargetValue = .TxtValue
      MsgBox TargetValue
    End If
  End With
  Unload UserForm1
  Set UserForm1 = Nothing
End Sub

試してみてな。
ほな。

3353 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free