Excel VBA質問箱 IV

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

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


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

【35406】On Error GoTo について kayu 06/3/3(金) 10:28 質問[未読]
【35417】Re:On Error GoTo について ichinose 06/3/3(金) 18:26 発言[未読]
【35434】Re:On Error GoTo について kayu 06/3/4(土) 18:26 お礼[未読]

【35406】On Error GoTo について
質問  kayu  - 06/3/3(金) 10:28 -

引用なし
パスワード
   すみません、宜しくお願いします。

メインのマクロから、フォームマクロを呼び出して、フォームマクロでエラーが
発生した時にメインのマクロのラベルに飛びたいのですが…

メインとファームを行ったり来たりするので、その都度、if文で判断するのは
避けたいのですが、宜しくお願いします。

【35417】Re:On Error GoTo について
発言  ichinose  - 06/3/3(金) 18:26 -

引用なし
パスワード
   ▼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


というように標準モジュールに
エラー処理プロシジャーを作成するという方法は考えられますが、
状況にもよりますが、フォームモジュールのエラーはフォームモジュール内に
記述するのが一般的かと思います。

【35434】Re:On Error GoTo について
お礼  kayu  - 06/3/4(土) 18:26 -

引用なし
パスワード
   ▼ichinose さん: ありがとうございます。
私の説明不足で申し訳ありません…
どうのように説明したらいいのか今思いつかないので
後日改めて質問させて頂きたく思います。

質問の仕方を勉強します。

ichinose さん大変有難うございました。
今後とも宜しくお願いします。

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