| 
    
     |  | ▼kayu さん: こんにちは。
 
 >すみません、宜しくお願いします。
 >
 >メインのマクロから、フォームマクロを呼び出して、フォームマクロでエラーが
 >発生した時にメインのマクロのラベルに飛びたいのですが…
 >
 >メインとファームを行ったり来たりするので、その都度、if文で判断するのは
 >避けたいのですが、宜しくお願いします。
 
 メインというプロシジャーはどこにあるのですか?
 標準モジュールですか?
 こういう状況説明をきちんとしてください。
 
 基本的には、フォームモジュールから、別のモジュールに
 エラートラップをいきなり飛ばすのは無理です。
 (モジュールどころか別プロシジャーでも無理です)
 いや、仮にできてもやるべきではありません。
 非常にわかりづらい(アセンブラのような)コードになってしまいます。
 
 
 例えばUserform1にCommandbutton1というコマンドボタンが一つ配置された
 ユーザーフォームを考えます。
 ここでは、このコマンドボタンをクリックすると自動的にエラーになる
 例ですが・・・。
 
 標準モジュールに
 '=================================================================
 Sub main()
 With UserForm1
 .Show
 End With
 End Sub
 '===================================================================
 Sub err_disp(err_num As Long)
 'ここでエラー処理を一括で担う処理を記述する
 MsgBox Error(err_num)
 End Sub
 
 
 Userform1のモジュールに
 
 '===================================================================
 Private Sub CommandButton1_Click()
 On Error GoTo err_label
 ans = 1 / 0
 Exit Sub
 err_label:
 Call err_disp(Err.Number)
 Resume Next
 End Sub
 
 
 というように標準モジュールに
 エラー処理プロシジャーを作成するという方法は考えられますが、
 状況にもよりますが、フォームモジュールのエラーはフォームモジュール内に
 記述するのが一般的かと思います。
 
 |  |