仕事でたま~に(数年に一度)なんちゃって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
ユーザーフォームのプロパティ

オブジェクト名/キャプション
オブジェクト名 | キャプション | |
UserForm | UserForm1 | 曜日入力画面 |
ListBox | YoubiList | – |
CommandButton | OKButton | OK! |
実行結果

参考のリンク
ユーザーフォームの戻り値を取得する(正三雑記さん)
コメント