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)
コメント
[…] […]
[…] […]