VBA ユーザーフォームの呼び出しと変数の受け渡し 備忘録

仕事でたま~に(数年に一度)なんちゃってVBAを作成するときがあります。
理解せず行き当たりばったりで作っているため、いつもユーザーフォームの作り方や使い方を忘れてしまいます。
サンプルを作っておこうと思います。

サンプル

仕様

入力画面(ユーザーフォーム)を表示させ、曜日を選択してもらい、OKボタンが押されたら
メッセージボックスで入力された曜日を表示する。
OKボタンが押されずに右上の×が押されたらキャンセルされた旨メッセージを出す。

標準モジュール 呼び出し元

Public OKSW As Boolean
Public YoubiKubunn As String

Sub ユーザフォームサンプル()

OKSW = False
UserForm1.Show
'-----------------------------------------------------------------
If OKSW = True Then  'OKが押された   
     MsgBox "OKが押された 曜日区分は" & YoubiKubunn
'-----------------------------------------------------------------
Else  'OKが押されないままキャンセルされた  
     MsgBox "キャンセルされました。終了します。", vbInformation
End If
'-----------------------------------------------------------------
End Sub

ユーザーフォームのコード

' フォーム UserForm1のコード

Private Sub YoubiList_Click()

End Sub

Private Sub UserForm_initialize()
   With YoubiList
      .AddItem "月"
      .AddItem "水"
      .AddItem "金"
      .ListIndex = 0  '一番上にカーソルを設定
      YoubiKubunn = "月" '初期化
   End With
End Sub
Private Sub OKButton_Click()
   OKSW = True
   With YoubiList
      YoubiKubunn = .List(.ListIndex)
   End With
   Unload Me
End Sub

ユーザーフォームのプロパティ

オブジェクト名/キャプション

オブジェクト名キャプション
UserFormUserForm1曜日入力画面
ListBoxYoubiList
CommandButtonOKButtonOK!

実行結果

参考のリンク

ユーザーフォームの戻り値を取得する(正三雑記さん)

コメント

タイトルとURLをコピーしました