• ベストアンサー

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」と言う文字を含むのなら とするにはどうすればいいでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.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

noname#176436
質問者

お礼

ありがとうございました。

その他の回答 (4)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

ヘルプを読む限りでは、どうやら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で重ねちゃっても良いですし。

noname#176436
質問者

お礼

ありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

どうも@がくっついた文字列はメールアドレスと にんしきするようなので文字列を省いた状態で 再々回答しておきます。 "*なんとかかんとか*"は質問中の検索する文字列です。 Sub test1() Dim s As String s = "*なんとかかんとか*" Select Case s Like "*yahoo*" Case True MsgBox "yahoo" Case Else MsgBox "失敗" End Select End Sub これで審査対象となるとわけがわからなくなりますが。

noname#176436
質問者

お礼

ありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

何故か投稿するとサポートで確認とか わけの分からないことになってしまったので 再回答しておきます。 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 コード中の語句に何か変なものが まじっているのでしょうかね。 一応、上記で動くと思いますが。

noname#176436
質問者

お礼

ありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

以下のような感じ。 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

noname#176436
質問者

お礼

ありがとうございました。

関連するQ&A