- ベストアンサー
Select Case文でこのようなことは可能でしょうか?
こんにちは。 「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか? 例えば・・・ Select Case strName Case "ABC" 処理1 Case "D"を含む 処理2 Case Else 処理3 End Select 上記の様なことがしたいのですが、可能でしょうか? 可能でしたら、「"D"を含む」の部分はどのように書いたらいいですか?? 教えてください。宜しくお願いしますm(_ _)m
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> 文字列で○○を含むというのは指定できるのでしょうか? 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)
こんばんは。 それは、以下のようにします。別に、カッコは必要ありませんが、単に見栄えで付けています。時々は、こういう方法も使いますね。 Dim strName strName = "ABC" Select Case True Case (strName Like "ABC") MsgBox strName Case (strName Like "*D*") MsgBox strName Case Else '処理3 End Select
- todo36
- ベストアンサー率58% (728/1234)
> 「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)
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)
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)
私なら、strNameをinstr関数で、その文字が含まれているかを検索してflgを立てて、その後Select Caseで多分岐させるかなぁ
お礼
皆さん、ご回答有難うございました。 皆さんのおかげで思っていたように作成することができました。 ご回答頂いただけでも、いくつか方法があるみたいですね。 大変勉強になりました。