Excel VBA入門 その53:「Select Caseに対応するCaseがありません。」の原因・対処方法

エクセルVBA VBA



Select Caseを使っていますか?

Select CaseステートメントはVBAでは処理の条件分岐でよく使用しますが、エラーが出て困ったことはないでしょうか。

今回はSelect Caseを使って出るエラー「Select Caseに退位王するCaseがありません。」の原因・対処方法について徹底的に説明していきます。

参考:Excel VBA入門 その75:「Is Nothing」で「 型が一致しません」のエラーになるときの対処方法



「Select Caseに対応するCaseがありません。」の原因・対処方法

「Select Caseに対応するCaseがありません。」の原因

「Select Caseに対応するCaseがありません。」のエラーが出る原因は、コード内に「Case 条件式」が記述してあるにも関わらず、それに対応する「Select Case」が記述されていないことが原因です。

つまり、以下のコードのように、2行目の「Select Case」の記述をコメントにするとエラーが出てしまうのです。

Sub SelectCaseのエラー()
    'Select Case Range("B2").Value ←コメントにして、Select Case が記述されていないことにしている
        Case Is >= 250
            Range("B3").Value = "伝説の剣"
        Case Is >= 200
            Range("B3").Value = "強力な剣"
        Case Is >= 100
            Range("B3").Value = "普通の剣"
    End Select
End Sub

今回はわかりやすい例ですが、よくあるミスとして、

  • For文の入れ子
  • If文の入れ子

などの入れ子で処理をする場合に、「Select Case ~ Case 条件式 ~ End Select」 が複数の入れ子をまたいでしまうことがあるので、注意するようにしてください。

「Select Caseに対応するCaseがありません。」の対処方法

「Select Caseに対応するCaseがありません。」のエラーが出たときは、

「Case 条件式」に対応する「Select Case」が記述されているか確認してください。

「Select Case ~ Case 条件式 ~ End Select」が途切れていないか、例えばFor文の入れ子をまたいでいたりしないか、そういうところを確認するようにしてください。

【まとめ】「Select Caseに対応するCaseがありません。」の原因・対処方法

「Select Caseに対応するCaseがありません。」のエラーについて説明してきました。

エラーになる原因は、コード内に「Case 条件式」が記述してあるにも関わらず、それに対応する「Select Case」が記述されていないことが原因です。

解決方法は、「Case 条件式」に対応する「Select Case」が記述されているか確認してください。

参考:Excel VBA入門 その23:複数の条件分岐で処理を実行させる(Select Case)

コメント

  1. […] […]

  2. […] […]

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