• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VB.NET】複数のサブルーチンをすべて一気に抜ける方法?)

【VB.NET】複数のサブルーチンを一気に抜ける方法

noname#134443の回答

noname#134443
noname#134443
回答No.1

 Sub AAA   try    Call BBB   catch end try  End Sub ----------  Sub CCC    If (抜けたい時)then     throw new Exception()    End If     End Sub ---------- 例外処理の構文はこれでよかったかあやふやですが、 CCCの中で例外をスローしてAAAでキャッチする方法を紹介させていただきます。 しかしながら本来、このような処理になることはコードの複雑化を招きますので、 できることならIf文の順序など処理の順序を変えたほうが良さそうです。

linelan
質問者

お礼

 どうもありがとうございます! 試してみてうまくいきました。ただきちんと理解しておかないと >このような処理になることはコードの複雑化を招きますので、 とおっしゃられる通りコードがややこしい挙動をしてしまいそうなので 今勉強しております。。φ(-_-;  Try~Catchを使う事が今までほとんどありませんでしたので これを機に使い方を学んでおきます!  この度はご親切にどうもありがとうございました!!m(_ _)m

関連するQ&A

  • VBA コードを中断するには?

    下記コードにて、 aaaを実行し、Exit Subのところで実行そのものを終了させたいのですが、このままだとcccのコードが実行されてしまいます。 Exit Subのところをどう変更すればよいのでしょうか? Sub aaa() bbb ccc End Sub Sub bbb()  略  Exit Sub  ←ここをどう書けば良いですか?  略 End Sub Sub ccc()  略 End Sub

  • サブルーチンの使い方

    こんにちは 以前 このサイトでサブルーチンを教えて頂いたのですが 今回は、このサブルーチンを使って Commandbuttonに Sheets("20年7月度").Cells(2, 6).Value = Cells(2, 6) & Mojiを 入れたいのですが、どのようにすれば いいですか? 宜しくお願い致します。 Private Sub mySub(Moji) '数字 If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & Moji Else: TextBox1.Value = TextBox1 & Moji End If End Sub Private Sub CommandButton1_Click() 'サブルーチン Call mySub("1") End Sub Private Sub CommandButton2_Click() Call mySub("2") End Sub Private Sub CommandButton3_Click() Call mySub("3") End Sub Private Sub CommandButton4_Click() Call mySub("4") End Sub Private Sub CommandButton5_Click() Call mySub("5") End Sub Private Sub CommandButton6_Click() Call mySub("6") End Sub Private Sub CommandButton7_Click() Call mySub("7") End Sub Private Sub CommandButton8_Click() Call mySub("8") End Sub Private Sub CommandButton9_Click() Call mySub("9") End Sub Private Sub CommandButton10_Click() Call mySub("0") End Sub Private Sub CommandButton11_Click() Call mySub("00") End Sub Private Sub CommandButton12_Click() Call mySub("000") End Sub

  • 複数のサブルーチンで使う定数をIf文で定義。。。

    複数のサブルーチンで使う定数をIf文で定義。。。  今晩は,質問させていただきます.どうぞよろしくお願いいたします. Win7+VB2008になります。 OSの種類によって決まる定数を複数のサブルーチンで使いたい次第で ございますが、どのように書くべきでございましょうか??? 一旦下のようにコーディングいたしまして、 Public Class Form1   Dim OS種類 as Double   Private Sub      :    Call OS調べ(OS種類)    A = OS種類 *2      :   End Sub   Private Sub      :    Call OS調べ(OS種類)    B = OS種類 *3      :   End Sub   Private Sub      :    Call OS調べ(OS種類)    C = OS種類 *4      :   End Sub   Private Sub OS調べ(OS種類)    If OS.Version.Major = 0 then     OS種類 = 3.141592    else     OS種類 = 1.0    EndIf   End Sub ・・・すべてのサブルーチンにCallを描くのもすっきりいたしませんので、 毎回Callせずに、「OS種類」を使用できるようにしたいのですが、 予め定数として書いておくにはどのようにすべきでございましょうか?? (Class宣言文直後にIf OS.Version~と書こうといたしましたところ、 「ステートメントを、メソッド本体の外側に表示することはできません」と エラーになりました。。)  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • エクセルVBA サブルーチンの使い方

    下記コードにて、MSGBOXで88を表示するには、どう変更すればよいですか? Sub aaa() bbb MsgBox b End Sub Sub bbb() b = 88 End Sub

  • サブルーチンの処理

    すみませんが教えてください。 往年のF-BASICやN88などでは 10 INPUT A 20 IF A=1 then gosub 100 ELSE PRINT "Aは1ではありません!" 30 END 100 PRINT A 110 RETURN こんなふうだったかサブルーチンが使えたかと思います。 これをVB.NETでかくと Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A As Integer A = TextBox1.Text If A = 1 Then ここにどういれたらいいでしょう Else MsgBox("Aは1ではありません") End If End Sub End Class になるとおもうのですが、Thenのあとサブルーチンへ飛ばせるのでしょうか? それとも根本的に考え方が違うのでしょうか? 初歩的な質問ですみませんが、Timer1.Enable = Trueを使った処理以外 入門書に載っていないので、どなたかお教えいただけませんでしょうか。

  • VBAでif文にorを使う場合の仕様

    http://www.relief.jp/itnote/archives/vba-if-or.php このページにも書かれてあるのですが、 Sub textss() aaa = 2 If aaa = 0 Or 1 Then bbb = 1 ElseIf aaa = 2 Then bbb = 2 End If ccc = bbb End Sub を実行すると cccには2が代入されそうなのですが、実際には1が代入されてしまいます。 If aaa = 0 Or aaa = 1 Then と入力する必要があります。 それでは、 If aaa = 0 Or 1 Then とした時、プログラムではどういう処理がなされているのでしょうか?

  • VBA コンボボックス

    VBAコンボボックスで AAAを選択→処理A BBBを選択→処理B CCCを選択→処理C としている場合、 AAAを選択→処理Aの後、コンボボックスで再度AAAをクリックしても次の処理Aにいきません。いったんBBBをクリックしてしてAAAをクリックすると処理Aに行きますが、連続AAAをクリックして処理Aはできないでしょうか。 何か方法はありませんか? Private Sub ComboBox1_Change() If ComboBox1.Value = "AAA" Then   ’処理Aへ ElseIf ComboBox1.Value = "BBB" Then   ’処理Bへ Else   ’処理Cへ End If End Sub

  • excel vba call

    1. if 条件 then call プロシージャ または 2. sub name() if 条件 then exit sub call プロシージャ end sub 1の場合、条件不成立 2の場合、条件成立 いずれも、call プロシージャが実行されてしまうのですが、callは無条件に実行されてしまうのでしょうか。

  • マクロAAAの変数をマクロBBBで使いたい

     マクロAAAの変数をマクロBBBで使いたいのですが Sub AAA() Dim xx xx = 15 Call BBB End Sub Sub BBB() マクロAAAの xx で処理作業 End Sub マクロAAAの xx は色々変化します。   このようなときどのようにすればよいのか   お教えください宜しくお願いします。

  • 参照渡し(ByRef)

    参照渡しについてわからないのですが Option Explicit Dim buf As String Sub Sample1() buf = "aaa" Call Sample2("bbb") MsgBox buf End Sub Sub Sample2(ByRef a As String) a = "ccc" End Sub を実行すると、msgboxには、aaaが表示されますが、 途中のbbb,cccはどんな意味があるのでしょうか? また、 Sub Sample2(ByRef a As String) を Sub Sample2(a As String) にしてもコードは問題なく動きますが、 ByRefは役に立ってるのですか?