'========================================================================================= ' 391 コンボボックスで一致する項目があったかを調べる '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) ' UserForm1にもコードがあり、標準モジュールのコードと連係して動作します '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Public タイトル As String Public スタイル As Long Public メッセージ As String Public 応答 As Variant '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを表示する UserForm1.Show '★★★ ユーザーフォームを表示する End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() Worksheets("Title").Select Range("P17").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation メッセージ = "コンボボックスの「MatchRequired」プロパティを" & Chr(13) & _ "「リスト内の項目と一致しない文字列も入力できる」に設定します。" & Chr(13) & Chr(13) & _ "コンボボックスが表示されたら、" & Chr(13) & Chr(13) & _ "1. ドロップダウンマーク[▼]をクリックして、リストの氏名を見て、" & Chr(13) & _ "2. リストにない氏名をキー入力してから、[OK]ボタンをクリックしてください。" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '----------------------------------------------------------------------------------------- '========================================================================================= ' ◆UserForm1のコード◆ '----------------------------------------------------------------------------------------- Private Sub UserForm_Initialize() 'ユーザーフォームを初期化する ComboBox1.MatchRequired = False 'リスト内の項目と一致しない文字列も入力できる End Sub '----------------------------------------------------------------------------------------- Private Sub CommandButton1_Click() If ComboBox1.MatchFound Then '★★★ 一致する項目がリストの中にあれば Worksheets("Title").Range("E10").Value = ComboBox1.Text '入力結果をセルにセットする Unload Me 'ユーザーフォームを閉じる Else 'なければ メッセージ = "コンボボックスに入力された値は、リストに存在しません。" & Chr(13) & Chr(13) & _ "入れなおしてください" 応答 = MsgBox(メッセージ, スタイル, タイトル) End If End Sub '=========================================================================================