Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9690 / 13644 ツリー ←次へ | 前へ→

【25981】複数プロシージャ間のエラー処理 しんたろう 05/6/20(月) 22:01 質問[未読]
【25984】Re:複数プロシージャ間のエラー処理 かみちゃん 05/6/20(月) 22:22 回答[未読]
【25988】Re:複数プロシージャ間のエラー処理 しんたろう 05/6/20(月) 23:18 お礼[未読]

【25981】複数プロシージャ間のエラー処理
質問  しんたろう  - 05/6/20(月) 22:01 -

引用なし
パスワード
   いつもお世話になっております。
複数のプロシージャに処理を分けてサプルーチンとし、下記のように、メインプロシージャに複数プロシージャを順に並べて実行します。S_bbb内でエラーが発生した際に、次のS_cccを実行せずに終了したいのですが、良いアイデアをお願い致します。

Sub Main()
 S_aaa
 S_bbb
 S_ccc
End Sub

【25984】Re:複数プロシージャ間のエラー処理
回答  かみちゃん  - 05/6/20(月) 22:22 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>複数のプロシージャに処理を分けてサプルーチンとし、下記のように、メインプ
>ロシージャに複数プロシージャを順に並べて実行します。S_bbb内でエラーが発生
>した際に、次のS_cccを実行せずに終了したい

Public ErrorCk As Boolean
と、どこかひとつのモジュールで宣言しておき、
初期値は、ErrorCk = True
エラーが発生したら、ErrorCk = False とするようにします。

それらを含めて、次のような感じでご希望の流れができると思います。
Public ErrorCk As Boolean

Sub Main()
 ErrorCk = True
 S_aaa
 S_bbb
 If ErrorCk Then
  'エラーが発生していない場合のみ処理
  S_ccc
 End If
End Sub

【25988】Re:複数プロシージャ間のエラー処理
お礼  しんたろう  - 05/6/20(月) 23:18 -

引用なし
パスワード
   かみちゃんさん。さっそくの回答ありがとうございます。
今回の質問のように、サプルーチンを複数用意して、それらをまとめたメインプロシージャを動かす、というスタイルをよくするのですが(読みやすいので)、途中のサブルーチンでエラーとなっても、最後までエラーが「将棋倒し」されてしまい、回避策で悩んでいました。明日、すっきりした頭のときに、試してみます。ありがとうございました。

9690 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free