![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセル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
No.10ベストアンサー
- 回答日時:
質問 1965604 で回答したものです。
「メチャメチャになっている」と書いた箇所があり、そのことと本質問が関連しているのかもしれません。もしそうなら、言い訳になりますが、OKWAVEの補足をパッと見て、OKWAVEではインデントが崩れるのでネストを見抜けず、SelectCaseの視点(変数)が変わっていたので誤解したようです。Case分のネストも最近使わなかったので。
CASE文のネストが可能かどうかは、既出回答でお分かりになったと思います。
複数視点からの判別はプログラム表現(コーディング)上難しいもののように思ってます。
それぞれ(変数aと変数b)を個別に条件を満たすかどうかのサイン(フラグ)0,1を作って(するとサインの組み合わせができますが)、11、10、01、00の各パターンを判別(例えばネストなしのCASE文で)して、処理を変えたような経験もあります。
質問 1965604 では、他の箇所の補足振りから見て、CASE文のネストまで使われるレベルの方とは思わず、失礼しました。
>インデントが崩れるのでネストを見抜けず
きちんと書かなければ、伝わらないですよね。失礼しました。
ごていねいに、フォローありがとうございました。
No.9
- 回答日時:
>どうもされてないと思いますが、これは、どう確認するのですか。
>あるいは、どうやってインストールしますか。
VBE(ワークシートからはALT+F11)の画面で
"case"の文字の上でF1キーを押してもヘルプ画面がでてこないのであれば、おそらく、インストールがされていないのだと思います。
ただ、(私は既にインストールしてあるので未確認ですが)エクセルに於いては、インストールされていない機能を使用しようとすると、アプリケーションCDを挿入してインストールを促すメッセージがでたと思います。(メッセージにしたがってCDを挿入し、エクセルの機能の中からVBAのヘルプのインストールを選ぶ)
そうでなくても、アプリケーションCDを挿入することで、現在インストールされている状況を調べて、機能を追加インストールするようなインストールプログラムが起動したと思います。
>case"の文字の上でF1キーを押してもヘルプ画面がでてこないのであれば、
失礼、でました。こうやってでるんですね。初めて知りました。
どうもごていねいに、とても感謝しております。
No.8
- 回答日時:
こんにちは。
Wendy02です。私は、表立っては、掲示板などでは言いませんが、
>構文上だめみたいな説明があったのでお聞きしたのです。
それは、コーディング・ルール(プログラミング作法)ではダメ(違反)だということです。ただし、それは、プロの世界の話です。
それと、コーディング・ルールは、元々はVBからの話であって、VBとVBAでは、そのルールが若干違ったりします。
ただ、VBAは、個人が個人の範囲で使うものですから、スパゲティでも、マカロニでも、通れば文句ないだろうって、開き直られたり、逆切れされたりする世界だから、コーディング・ルールは通用しないっていうだけです。
同様のものに、With ステートメントのネストがあります。
No.6
- 回答日時:
>検索キーワードは何にするとでてきますか。
私はこのような場合でも質問タブのところに入れます。
「SELECT CASE」と。手っ取り早いです。
アシスタント適用ならそれに聞きます。
No.5
- 回答日時:
>構文上だめみたいな説明があったのでお聞きしたのです。
??
当方EXCEL2000
HELPからの抜粋です。
Select Case ステートメントはネスト (入れ子) 構造にすることができま
す。このとき、各 Select Case ステートメントには、それぞれ対応する
End Select ステートメントが必要です。
・・・とあり、はっきりと「出来る」と書かれていますが??
この回答への補足
当方EXCEL2000
HELPからの抜粋です。
自分でもVB及びEXCEL2000ヘルプを探したのですが見つからなくて、
検索キーワードは何にするとでてきますか。それとも
私のヘルプがおかしいのでしょうか。
No.2
- 回答日時:
自分でテストしてみるのが一番に納得がいきます。
Private Sub CommandButton1_Click()
Dim A As Integer
Dim B As Integer
A = InputBox("A=")
If A = 1 Then
B = InputBox("B=")
End If
Select Case A
Case 1
Select Case B
Case 1
MsgBox "B=1"
Case 2
MsgBox "B=2"
Case Else
MsgBox "B=ELSE"
End Select
Case 2
MsgBox "A=2"
Case Else
MsgBox "A=Else"
End Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
彼女のことが好きすぎて彼女の...
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
エクセル指定した範囲からラン...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
これって喉仏ですか? 私は女性...
-
EXCELで式からグラフを描くには?
-
【Excelで「正弦波」のグラフを...
-
精子に血が・・・
-
Excelで""で囲む方法
-
エクセルのグラフで、値0のとき...
-
風俗店へ行く前のご飯
-
値が入っているときだけ計算結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
これって喉仏ですか? 私は女性...
-
中出しをするとお腹が痛い・・・。
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
尿検査前日に自慰行為した時の...
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
口の中に黒い血の塊
-
【Excelで「正弦波」のグラフを...
-
エクセル指定した範囲からラン...
おすすめ情報