例えば、「Aの値」&「Bの値」で処理をする場合には
Select Case "A"&"B"
Case "11" '(A=1&B=1の場合)
で処理できると思うのですが、「B=1~5」として組み合わせることは可能でしょうか?
現在、下記のようにSelect文の中にSelectを組み合わせていますが、
どうにか上記のようにひとつのSelect文で処理できないかな~と思っています。
Select Case "A"
Case 1
Select Case "B"
Case 1 To 5
ご存知の方がいらっしゃいましたら、ぜひご回答の程お願いいたします。
No.5ベストアンサー
- 回答日時:
私なら、Select Caseをまとめて簡単に書こうと思ったら、ANo.3の
nda23氏のような書き方をすると思いますが、その書き方について。
Select Case True
Case ???
:
:
End Select
の書き方をするなら、???の部分とTrueの比較が行われるので、???の部分は
全体で見て「論理式である」必要があります。
ANo.3の内容を書き換えるとすると、
Case A=1 And B>=1 And B<=5
みたいな感じになります。
No.4
- 回答日時:
私がVBAでやってみたら、できましたが、
文字列のtoはいまいち信用ならないので
case "11","12","13","14","15"
のように記述したほうが良いかもしれません。
Private Sub コマンド0_Click()
Select Case Me.テキスト1 & Me.テキスト3
Case "11" To "15"
MsgBox "true"
End Select
End Sub
説明不足でごめんなさい。
今回は、「A=あいう」と「B=2000~3000」といった文字列+数値(○~○)の組み合わせ条件にしたいのです。
確かに、文字列のToは信用ならない気が・・
ありがとうございます。
No.3
- 回答日時:
結論から言うと、できません。
以下のような書き方ができます。構文エラーと思われますが、何故か
エラーになりません。しかし、期待した結果にはなりません。
Select Case True
Case A = 1, B = 1 To 5
なるほど。
私も、こういう記述の方法は試してなかったので早速試してみました。
う~ん、エラーにはならず期待した結果も出ず。
どういった処理になっているのかわかりませんね。
ご回答、ありがとうございます。
No.2
- 回答日時:
(1)case分のネストで1方をToで範囲化(質問の例)
(2)組み合わせを具体化。その値を列挙(数に限りがあると思うが)
(3)場合が多ければ、2次元の表化
余りルール性がなくても決定できるでしょう。
エクセルならシート利用。他なら配列利用か。
-X Y Z ・・・・
A R1 R3 R2
B R3 R1 R2
C ・・・・
この表で縦軸と横軸を各々聞いて、該当交差セルのR2の処理に飛ばす。
(4)http://homepage1.nifty.com/rucio/main/technique/ …
の2つの変数を同時判断
という面白そうなの見つけたが、未検証。
この回答への補足
ご回答、ありがとうございます。
今回作成しているものは、数千通りの値を処理するものです。
(4)のサイトは私も参考にしたのですが、うまくいきません。
AとBの両方ともが数値であれば良いのかもしれませんが、
今回、Aは文字、Bは数値です。
(3)を試してみたいのですが、エクセルに一覧表を作成して、
そこを参照させる・・という理解でOKでしょうか?
No.1
- 回答日時:
> "A"&"B"
・・・これ「 A&B 」じゃない?(クォティション有無)
http://www.google.co.jp/search?q=visualbasic%20s …
>「B=1~5」として組み合わせる
「条件分岐」を「ネスト」「入れ子」辺りで調べてごらん
でも手っ取り早いのは連結した文字を数値化する事じゃない?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) Excel コンボボックス バックカラー 1 2023/02/18 08:06
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Excel(エクセル) エクセルのselect case で 100以上でなおかつ200未満はどう書いたらいいですか 1 2023/01/12 13:02
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
SubとFunctionの使い分け方。(...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
Word VBA。各マクロの間に待ち...
-
どう増強すべきか
-
特定のファイルを他のプロセス...
-
シートモジュールを複数作成す...
-
タイマーの使い方
-
【C#】Page_Loadさせない方法に...
-
VBAでBook読み込み時の非表示方...
-
vbaのエラー対応(実行時エラー...
-
エクセル VBAで複数セル選択時...
-
シグナル 6(SIGABRT)とは?
-
特定の名前のオートシェイプの...
-
ProgressBarを用いる場合、全体...
-
バッチ処理って何?
-
RaiseEventのメリット
-
【Vb.net】プリンタジョブの取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
Functionで戻り値を複数返す方法
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
シェルスクリプトでファイル内...
-
【Vb.net】プリンタジョブの取得
-
vbaのエラー対応(実行時エラー...
-
VBAでBook読み込み時の非表示方...
おすすめ情報