• ベストアンサー

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

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

noname#20343
noname#20343

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

  • ベストアンサー
  • 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で多分岐させるかなぁ

関連するQ&A

  • select case文について

    VB6.0のSelect Case文について質問です。 現在、ある文字列(mojiretu)の中から特定の文字を検索して その文字が文字列(mojiretu)の中に存在したらチェックボックスにチェックという一連の処理を行いたいのですがうまくいきません>< このSelect Case文のどこを直すべきでしょうか? select case mojiretu case instr(mojiretu,"abc") chk1.value=1 case instr(mojiretu,"def") chk2.value=1 case else chk3.value=1 end select

  • VBA Select Caseについて

    エクセルVBAでLike演算子とSelectCase構文を組み合わせたいのですが、以下ではエラーになってしまいます。 どう修正すればいいのでしょうか? ABCを含む文字列、DEFを含む文字列、その他、についての処理の分岐方法です。 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Value Case Like "*ABC*" `処理A Case Like "*DEF*" `処理B Case Else `処理C End Select End Sub

  • ExcelVBA Select Caseについて

    Select Case Cells(i, k) Case "" Case "AB","EF","G","IJ","K",,"LM","S","MNO","P","T","V","Z" 処理1 Case "CDE","H" 処理2 Case Else 処理3 End Select 上記の文字を条件にして処理を変えたいのですが、まったく同じ条件の分岐がマクロ上に数箇所あります(それぞれ処理は違います) コピーして貼り付けてしまえばいいのですが、見栄えが悪くなるし、訂正が発生したら直すのが大変だし、という状態です 最初に変数か何かに入れておいて、そこで比較できればかなりすっきりするのでは? と思いついたのですが、書き方が分かりません もしかしたら構文の関係で出来ないのかもしれませんが、できるとしたらかなりうれしいです 教えて下さい、よろしくお願いします

  • Select Case の条件式

    VBAの初心者です。 家計簿の品目に対して値段を自動で入力したいです。 以下のように、Select Case の条件式の指定方法で、 列に入力された文字列の条件に対して、 自動でとなりのセルに入力したいのですが解らなくて困っております。 Sub TEST() ' A列セルの条件(文字列)でとなりのセルに文字列を入れたい Select Case Range("A1").Value 'A1をどうすればいいのでしょうか。 Case "a": Range("列のセルのとなりに入力したい").Value = "リンゴ" Case "o": Range("列のセルのとなりに入力したい").Value = "オレンジ" Case "b": Range("列のセルのとなりに入力したい").Value = "バナナ" Case Else: Range("列のセルのとなりに入力したい").Value = "error" End Select End Sub ご存じの方がおられましたら教えていただけませんでしょうか。 よろしくお願いします。

  • ExcelVBA select case 値設定

    ExcelVBAのSelect Caseで Select Case 数式または文字列式 Case 値1, 値2, 値3  処理 Case Else  処理 End Select のようにカンマで区切ると複数の値を指定できるはずです。 この値1, 値2, 値3のところに別のシートのA1、A2、A3に入っている値を設定したいのですが そのようなことは可能でしょうか?(A1→値1 A2→値2 A3→値3) 5年ぶりにVBAを書いていますが、びっくりするぐらい忘れています。。。

  • Select Caseでorは使えないのでしょうか?

    Sub TEST() 文字 = "あ" Select Case 文字 Case "あ" Or "い" MsgBox "「あ」もしくは「い」です。" End Select End Sub これだとエラーになるのですが ケースが「あ」もしくは「い」の場合は同じ処理をしたい場合はどうすればいいのでしょうか? Sub TEST() 文字 = "あ" Select Case 文字 Case "あ" MsgBox "「あ」もしくは「い」です。" Case "い" MsgBox "「あ」もしくは「い」です。" End Select End Sub このコードをまとめるはどうすればいいのでしょうか? よろしくお願い致します。

  • エクセルVBAでSelect...Caseの構文

    エクセルVBAで ■ Select...Caseの構文は、次(構文1)のようになっているとのことですが、 構文2のような、意味でネストして使う使い方は許されているのでしょうか。 (参考 QNo.1965604 の#7に,#8に関係したところをお聞きします。) (構文1) Select Case 変数  Case 値1    変数が値1の時の処理  Case 値2    変数が値2の時の処理  Case Else    他のCaseに合わない場合(その他)の処理 End Select (構文2) Select Case 変数a  Case 値1    変数aが値1の時の処理       Select Case 変数b            Case 値1            変数bが値1の時の処理            Case 値2            変数bが値2の時の処理       Case Else        変数bが、他のCaseに合わない場合(その他)の処理 End Select  Case 値2    変数aが値2の時の処理  Case Else    変数aが、他のCaseに合わない場合(その他)の処理 End Select

  • Select case の条件にOrは使えない???

    いつもお世話になっています。 ASP(VBScript)でプログラミング中です。 多分VBでは出来たと思うのですが、 Select case A case 1 Or 2       処理A End Select のように、Aが1でも2でも通って欲しい処理があるのですが、 上記のように書いた場合 Aが1でも2でも 処理Aを通ってくれません。 こういう記述の仕方って出来ませんでしたっけ? Select case A case 1       処理A   case 2 処理A End Select のように2回同じことを書かなきゃいけないんでしょうか・・・ それとも何か他のところでミスってるだけで、こういう書き方はOKなのでしょうか?困ってます。よろしくお願いします。

  • VBA 曖昧一致CASE文のELSE

    以下の様な曖昧一致CASE文でElse判定がとれず困っています。 どの様にするべきでしょうか Select Case True Case str Like "*AAAA*" ' 処理1 Case str Like "*BBBB*" ' 処理2 Case Else ' Else処理 End Select この例で実行すると、全ての曖昧検索が一致しなくても 結果として処理2が走ってしまいます。

  • SELECT文

    SELECT文で列を指定するのではなく 列には存在しない、自分で指定した文字列を 表示させるにはどうすればいいのでしょうか? 文的にはこのようなイメージです。 SELECT 指定した文字列,存在する列名 FROM テーブル名 分かり難いかもしれませんが よろしくお願いします。

専門家に質問してみよう