• ベストアンサー

Select Case文でこのようなことは可能でしょうか?

こんにちは。 「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか? 例えば・・・ Select Case strName Case "ABC" 処理1 Case "D"を含む 処理2 Case Else 処理3 End Select 上記の様なことがしたいのですが、可能でしょうか? 可能でしたら、「"D"を含む」の部分はどのように書いたらいいですか?? 教えてください。宜しくお願いしますm(_ _)m

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

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 文字列で○○を含むというのは指定できるのでしょうか? Caseの中ではNGです。 Select Case strName Case "ABC" 処理1 Case Else  if strNameがDを含むなら、 then   処理2  Else   処理3  Endif End Select とかですね。 > 「"D"を含む」の部分はどのように書いたらいいですか?? InStr関数を利用するのが良いです。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 それは、以下のようにします。別に、カッコは必要ありませんが、単に見栄えで付けています。時々は、こういう方法も使いますね。  Dim strName  strName = "ABC"  Select Case True   Case (strName Like "ABC")    MsgBox strName   Case (strName Like "*D*")    MsgBox strName   Case Else  '処理3  End Select

noname#20343
質問者

お礼

皆さん、ご回答有難うございました。 皆さんのおかげで思っていたように作成することができました。 ご回答頂いただけでも、いくつか方法があるみたいですね。 大変勉強になりました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

> 「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか? 出来ないので、Select Caseを使わないのがよいでしょう。 If strname = "ABC" Then MsgBox "処理1" ElseIf strname Like "*D*" Then MsgBox "処理2" Else MsgBox "処理3" End If

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

Select Case strName Case "ABC" MsgBox "処理1" Case Else If strName Like "*D*" Then MsgBox "処理2" Else MsgBox "処理3" End If End Select

  • coboler
  • ベストアンサー率57% (57/99)
回答No.3

Dim strName As String Select Case True Case strName.Equals("ABC") MsgBox("ABC") Case strName.IndexOf("D") >= 0 MsgBox("D") Case Else MsgBox("Else") End Select ※IndexOf関数:指定した文字のインデックスを返す 上記のような方法を用いるどうでしょうか? もっと良い方法はある気がしますが、一応できます。

  • souta_n
  • ベストアンサー率33% (79/234)
回答No.2

私なら、strNameをinstr関数で、その文字が含まれているかを検索してflgを立てて、その後Select Caseで多分岐させるかなぁ