【初月無料キャンペーン中】gooドクター

こんにちは。
「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか?

例えば・・・

Select Case strName
Case "ABC"
処理1
Case "D"を含む
処理2
Case Else
処理3
End Select

上記の様なことがしたいのですが、可能でしょうか?
可能でしたら、「"D"を含む」の部分はどのように書いたらいいですか??
教えてください。宜しくお願いしますm(_ _)m

gooドクター

A 回答 (6件)

> 文字列で○○を含むというのは指定できるのでしょうか?



Caseの中ではNGです。

Select Case strName
Case "ABC"
処理1
Case Else
 if strNameがDを含むなら、 then
  処理2
 Else
  処理3
 Endif
End Select

とかですね。


> 「"D"を含む」の部分はどのように書いたらいいですか??

InStr関数を利用するのが良いです。
    • good
    • 0

こんばんは。



それは、以下のようにします。別に、カッコは必要ありませんが、単に見栄えで付けています。時々は、こういう方法も使いますね。

 Dim strName
 strName = "ABC"
 Select Case True
  Case (strName Like "ABC")
   MsgBox strName
  Case (strName Like "*D*")
   MsgBox strName
  Case Else
 '処理3
 End Select
    • good
    • 2
この回答へのお礼

皆さん、ご回答有難うございました。

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

お礼日時:2005/07/20 09:58

> 「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか?



出来ないので、Select Caseを使わないのがよいでしょう。

If strname = "ABC" Then
MsgBox "処理1"
ElseIf strname Like "*D*" Then
MsgBox "処理2"
Else
MsgBox "処理3"
End If
    • good
    • 1

Select Case strName


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

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関数:指定した文字のインデックスを返す

上記のような方法を用いるどうでしょうか?
もっと良い方法はある気がしますが、一応できます。
    • good
    • 0

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

せるかなぁ
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング