前提・実現したいこと
VBAマクロで下記のように条件分岐をさせたいです。
①の条件分岐
1:条件
2:条件
3:条件
②の条件分岐
1:条件
2:条件
3:条件
(以下略)
のような分岐の仕方です。
上記のような条件分岐だと上手く動作しないのでしょうか。(VBA初心者でグーグルで検索しきれませんでした)
もしそうでしたら、どの構文を用いれば良いかご教示頂きたいです。
宜しくお願い致します。
発生している問題・エラーメッセージ
①の条件分岐は上手くいくのですが、②の時の条件分岐が上手くいきません。
2番目の条件で出力させようとすると、1番目の出力結果が出てしまう状況です。
繰り返し処理はせず、一回実行後はテキストファイルで出力させる仕様です。
該当のソースコード
xxxは伏字です。
VBA
1- リスト条件分岐① 2 3 If Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 4 5 Worksheets("xxx").Range("xxx").Value = "xxx" 6 7 If Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 8 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 9 10 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 11 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 12 13 Else: Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 14 15 End If 16 17 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 18 19 20 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 21 22 Worksheets("xxx").Range("xxx").Value = "xxx" 23 24 25 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 26 27 Worksheets("xxx").Range("xxx").Value = "xxx" 28 29 30 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 31 32 Worksheets("xxx").Range("xxx").Value = "xxx" 33 End If 34 35- リスト条件分岐② 36 37 If Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 38 39 Worksheets("xxx").Range("xxx").Value = "xxx" 40 41 If Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 42 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 43 44 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 45 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 46 47 Else: Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 48 49 End If 50 51 Worksheets("xxx").Range("xxx").Value = Worksheets("xxx").Range("xxx").Value 52 53 54 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 55 56 Worksheets("xxx").Range("xxx").Value = "xxx" 57 58 59 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 60 61 Worksheets("xxx").Range("xxx").Value = "xxx" 62 63 64 ElseIf Worksheets("xxx").Cells(xxx, xxx).Value = "xxx" Then 65 66 Worksheets("xxx").Range("xxx").Value = "xxx" 67 End If
情報不足です。①のいずれかに合致した場合、②の判定もするのですか?①に合致しないときだけですか?
ttyp03様
情報不足で申し訳御座いません。
①に合致してもしなくても、②の条件分岐をさせたいです。
サンプルコードが全て同じ条件になっていて参考になりません。
①と②で排他関係にないのならこれで正しいと思います。
②の条件を見直してみては?
少なくとも今ある情報からは何も答えられません。
伏字だらけで全容が見えません。
本当にセキュアな情報だけ伏字にされたほうが良いかと思います
値を入れて下さい。
"Sheet1", Sheet2", "Sheet3"など。 そして、それぞれのシートに具体的な値もダミーで良いので書き込んで下さい。例えば、セルの一行、一列には、xxxなど。
そうしないと、デバッグとか出来ないのでコメントが困難な状況です。
以上、よろしくお願いします。
1と2の条件だけでも表示しないと解らないですね・・・
回答4件
あなたの回答
tips
プレビュー