リビングストン←→相模原 日記

リタイア後、日本→スコットランドを行き来して何とか暮らしている。

エクセルVBA【On Error Resume Next】30年来の問題が解決した。

2023年04月29日 | パソコン、ネット関係

最近SeleniumBasic、Webdriverを使ってWebスクレイピングを再開した。
暇はいくらでもあるので、一つの問題点、バグに長時間かけて対処することが出来ている。

そして、VBAを使い始めた当初から懸案となっていたエラー処理が、30数年ぶりに解決した!!!!!

直リンクは避けるが、”エクセルVBA【On Error GoTo】 2回目以上使いたい”で検索するとヒットするサイトで見つけた”超絶技巧”


”実際の記述は少々違うが”
GoTo ERH1
ERBACK1:
Resume ERH1
ERH1:                   注2

On Error GoTo ERBACK1
”エラーが発生する処理”
On Error GoTo 0

と記述すると、
Web読み込み速度に由来する、予測できないエラー、
Resume Nextで飛ばしても次のエラーでストップする、
原因不明で時々発生するが、デバッグで再開するとそのまま動作する
などの場合でも対処できる! 注1

Resume ERH1 ’ラベル名は任意
ERH1:

肝はこれだけなのだが、上記サイト以外では見たことが無い!
サイト管理者の方、どうもありがとうございました。

このテクニックを30数年前にゲットしていたら、もっとましなマクロが出来ていたのだが・・・・・

注1:これを使用することで予期せぬ問題が発生する可能性は無いとは思うが、適用は自己責任で!

注2:実際にはこの部分は、
ERBACK1:Resume
ERH1:       
でも良かった。
 
ERBACK1:Resume をマクロの最後に

End
ERBACK1:Resume
End Sub

と記載して、エラーを無視して再トライしたい場合は全て”ERBACK1”に飛ばしてResumeで元の処理に戻す方が、スマートかもしれない。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 今日の激安品 | トップ | スコットランドひきこもり日... »
最新の画像もっと見る