• ベストアンサー
  • すぐに回答を!

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

  • 質問No.1515637
  • 閲覧数2564
  • ありがとう数4
  • 気になる数0
  • 回答数6
  • コメント数0
こんにちは。
「Select Case」の条件の一つに、文字列で○○を含むというのは指定できるのでしょうか?

例えば・・・

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

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 44% (5540/12318)

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

Caseの中ではNGです。

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

とかですね。


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

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

その他の回答 (全5件)

  • 回答No.6

ベストアンサー率 57% (3570/6233)

こんばんは。

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

 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
皆さん、ご回答有難うございました。

皆さんのおかげで思っていたように作成することができました。
ご回答頂いただけでも、いくつか方法があるみたいですね。
大変勉強になりました。
投稿日時:2005/07/20 09:58
  • 回答No.5

ベストアンサー率 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
  • 回答No.4

ベストアンサー率 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
  • 回答No.3

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

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

ベストアンサー率 33% (79/234)

私なら、strNameをinstr関数で、その文字が含まれているかを検索してflgを立てて、その後Select Caseで多分岐させるかなぁ
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ