
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
No.1ベストアンサー
- 回答日時:
こんにちは。
単に、以下のようにすればできると思います。
select case True
case instr(mojiretu,"abc")
chk1.value=1
case instr(mojiretu,"def")
chk2.value=1
case else
chk3.value=1
end select
No.5
- 回答日時:
下記ではどうでしょうか。
dim a as long
dim b as long
a = instr(mojiretu,"abc")
b = instr(mojiretu,"def")
select case true
case a >= 1 and b < 1
chk1.value=1
case a < 0 and b > 1
chk2.value=1
case else
chk3.value=1
end select
No.4
- 回答日時:
Sinmple is Best!
mojiretsu、Check1の綴りは変更して下さい!
Private Sub Command1_Click()
Check1.Value = Abs(InStr(1, mojiretsu, "abc", vbTextCompare) > 0)
Check2.Value = Abs(InStr(1, mojiretsu, "def", vbTextCompare) > 0)
Check3.Value = Abs((Check1.Value + Check2.Value) = 0)
End Sub
No.3
- 回答日時:
select case文は、
select case <評価式>
case <条件1>
文1
case <条件2>
文2
case else
文e
end select
の時、<評価式>と<条件n>が一致した時、文nが実行されます。
また、一致するcaseが複数あった場合は、最初の物だけが実行されます。
さらに、一致するcaseが無かった場合は、case elseの文が実行されます。
ですので、InStr関数を用いて「指定の文字が含まれるか?」をcase文に書く時は、ちょっと工夫が要ります。
Select Case True
Case (InStr(mojiretu, "abc") <> 0) And (InStr(mojiretu, "def") <> 0)
chk1.Value = True
chk2.Value = True
Case InStr(mojiretu, "abc") <> 0
chk1.Value = True
Case InStr(mojiretu, "def") <> 0
chk2.Value = True
Case Else
chk3.Value = True
End Select
上記のように<評価式>にTrueを指定し、case句の後の<条件式>にTrueかFalseになる式を書きます。
因みに、上記のままでは、条件が成り立たない時にチェックが消えない(一旦チェックが付くと消えない)ので、成り立たない時にチェックを消すなら、以下のようにします。
chk1.Value = InStr(mojiretu, "abc") <> 0
chk2.Value = InStr(mojiretu, "def") <> 0
chk3.Value = (InStr(mojiretu, "abc") = 0) And (InStr(mojiretu, "def") = 0)
No.2
- 回答日時:
IF文を使いましょう。
if instr(mojiretu,"abc") > 0 then ~
select case mojiretu なら、mojiretu がある値を持たない分岐しません。
従って、case instr(mojiretu,"def") では無く、
case "def" としないと分岐の判断ができません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
【VBA】 結合セルに複数画像と...
-
複数のExcelファイルをマージす...
-
VBAでセルの書式を変えずに文字...
-
Vba Array関数について教えてく...
-
vbsでのwebフォームへの入力制限?
-
pdfファイルの複数添付 引数の型
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
【ExcelVBA】5万行以上のデー...
-
VBA 入力箇所指定方法
-
エクセルのマクロについて教え...
-
【ExcelVBA】値を変更しながら...
-
VBA ユーザーフォーム ボタンク...
-
【マクロ】並び替えの範囲が、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECTボックスの内容を動的に...
-
リストボックスの内容に対して...
-
select case文について
-
ASP.NET 2.0 『×』の表示について
-
セレクトボックスのonchanngeで...
-
リストボックスのselectedindex...
-
同じデータを2つのボタンに送信
-
リストボックスで未選択の項目...
-
リストボックスでフリー入力したい
-
リストボックスから選んだ項目...
-
リストボックスを、右クリック...
-
フォームの生年月日のデータか...
-
HTMLの値の渡し方について質問...
-
遷移先のURLにパラメータを表示...
-
write downとfill outの違いを...
-
ASP.netで、CheckBoxListのSele...
-
フォームのtextareaにnl2brを使...
-
改行したいのですが
-
ACCESSのレポートの表示...
-
aspxでIFみたいなことがしたい
おすすめ情報