Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
RE:「時間計算 2」の「vaioyuki」さんへ
投稿日時: 22/06/07 16:47:13
投稿者: WinArrow
投稿者のウェブサイトに移動

https://www.moug.net/faq/viewtopic.php?t=81533
 
無時(?)解決・・ご苦労様
 
最終コードで
>エラー処理から脱出させてみたら
と書いていますが、
エラー処理から脱出できているわけではありません。
CDate関数に与えた引数の間違いを修正しただけで、
エラー処理が解決してはいません。
今のままだと、
If Err.Comber = 0 Then
以降にエラーが発生したら、スキップされてしまいます。
On err Resume Next
は、NGです。
 
どうしてもエラートラップを設定したいのでしたら、
以下のような方法を紹介します。
サンプルは、強制的にエラーを発生させていますので、
そこは真似しないように。
 

Sub ERRTEST()

    On Error GoTo errstep
    Err.Raise Number:=1004
    MsgBox "エラー発生の次のステップから継続実行します。"
    On Error GoTo 0
    Exit Sub

errstep:
    MsgBox Err.Description & vbLf & "エラー発生の次から実行"
    Resume Next

End Sub

 

回答
投稿日時: 22/06/07 17:46:52
投稿者: vaioyuki

わざわざありがとうございます。
 
今出来てる!!と思うのは勘違い?でたまたまということでしょうか。。。
元々のエラー処理はVLOOKUPのエラー処理でやっていたので別問題だと思ってました。
 
重ね重ねありがとうございました。(^ー^)

投稿日時: 22/06/07 18:13:26
投稿者: WinArrow
投稿者のウェブサイトに移動

エラートラップは、ここが怪しいと・・・と考えて仕掛けるという説明があるが、
デバッグ時は、どこでエラーが発生するかわからないときには、
エラー検出ステップに、飛ばして、そこからステップ実行すれば、
エラーとなったステップが分かるので、効率的なバグ潰しが可能になります。
でバックで「On Error Resume Next」では、手間が掛かります。
 
お分かりいただいたようですので、閉じます。