指定したリストの中から選んでもらう為にユーザーフォームのリストボックスを使いますが、リスト選択をしないでコマンドボタンを押されてしまってエラー表示になってしまった事ありませんか?
そんなリストボックスのリスト未選択時のままで、コマンドボタンを押してしまった時にメッセージを表示して、正しくリストを選んでもらうように促しましょう。
リストボックスのリスト未選択時のVBAコードを追記
リストボックスのリスト未選択時のVBAコードを追記とタイトルを読むと難しそうに思ますが、もっとわかりやすい日本語にしたら、このようになります。

もし、リストボックスのリストを選択しないでコマンドボタンを押してしまったら。
そうです、条件分岐「もし~だったら・・・」のIfステートメントを使います。
ListIndex = -1でリスト未選択を表す
Ifステートメントを使って、リストボックスが未選択の時は「””」ではありません。
空欄ではなく、未選択なので「””」にしてもエラーは変わりませんし、また「0」でもありません。
「0」はリストボックスでは最初の行を表すので1つ目のリストになるので、「-1」をすることで未選択を表してくれますので、リストボックスのリスト未選択時のVBAコードは下記のようになります。
Private Sub CommandButton1_Click()
If UserForm1.ListBox1.ListIndex = -1 Then
MsgBox “リストが選択されていません”
Else
Range(“A1”).Value = ListBox1.Value
End If
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1のリストボックス1が未選択だったら
- メッセージで「リストが選択されていません」と表示する
- そうでなかったら(リストが選択されていたら)
- セルA1にリストボックスで選択したリストを記載する
- Ifステートメント終了
- マクロ記録終了
これで、リストが選択されずに誤ってコマンドボタンを押してしまったら、メッセージが表示されて再度選択させるようになり、正しくリストを選択してコマンドボタンを押したら、セルA1に選んだリスト項目が記載されるようになります。
このIfステートメントはエクセルIF関数同様に、非常に多く使用しますのでぜひマスターしてくださいね。
またリストボックスは1つの項目だけリスト化するのではなく、2項目2列表示や選択したリストの一部のみまたは両方をセルに記載することも多くなるので、複数表示設定も覚えておいて損は無いと思いますよ。