- ベストアンサー
Select Caseでlikeを使うには?
Sub test() Dim s As String s = "aa*@yahoo.co.jp" Select Case s Case like "*yahoo*" MsgBox "yahoo" End Select End Sub をすると、コンパイルエラーになるのですが 「yahoo」と言う文字を含むのなら とするにはどうすればいいでしょう?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No3です。 あるいは、Case s Like "*yahoo*"を使うならば、 以下のような書き方でしょう。 Sub test() Dim s As String s = "*なんとかかんとか*" Select Case True Case s Like "*yahoo*" MsgBox "yahoo" Case Else MsgBox "失敗" End Select End Sub
その他の回答 (4)
- tsubuyuki
- ベストアンサー率45% (699/1545)
ヘルプを読む限りでは、どうやらCaseの中にLikeは使えないようですね。 条件分岐が一つだけなら、素直にIfを使って、 Sub test() Dim s As String s = "aa*あっとyahoo.co.jp" If s like "*yahoo*" Then MsgBox "yahoo" Else MsgBox "Not yahoo" End If End Sub のほうが早いかもですね。 条件が複数あるなら、ElseIfで重ねちゃっても良いですし。
お礼
ありがとうございました。
- piroin654
- ベストアンサー率75% (692/917)
どうも@がくっついた文字列はメールアドレスと にんしきするようなので文字列を省いた状態で 再々回答しておきます。 "*なんとかかんとか*"は質問中の検索する文字列です。 Sub test1() Dim s As String s = "*なんとかかんとか*" Select Case s Like "*yahoo*" Case True MsgBox "yahoo" Case Else MsgBox "失敗" End Select End Sub これで審査対象となるとわけがわからなくなりますが。
お礼
ありがとうございました。
- piroin654
- ベストアンサー率75% (692/917)
何故か投稿するとサポートで確認とか わけの分からないことになってしまったので 再回答しておきます。 Sub test1() Dim s As String s = "aa*@yahoo.co.jp" Select Case s Like "*yahoo*" Case True MsgBox "yahoo" Case Else MsgBox "失敗" End Select End Sub コード中の語句に何か変なものが まじっているのでしょうかね。 一応、上記で動くと思いますが。
お礼
ありがとうございました。
- piroin654
- ベストアンサー率75% (692/917)
以下のような感じ。 Sub test1() Dim s As String s = "aa*@yahoo.co.jp" Select Case s Like "*yahoo*" Case True MsgBox "yahoo" Case Else MsgBox "失敗" End Select End Sub
お礼
ありがとうございました。
お礼
ありがとうございました。