結論から言うと、VBAにはTry-Catch-Finallyが存在しない。 そこでOn Errorステートメントとラベルを使う。 一番簡単な例外処理(エラーハンドリング)は以下のとおり。 Sub ErrHandlingTest() On Error GoTo ErrorHandler Dim value As Long value = 2 / 0 '-- ゼロ除算のためエラー発生 Exit Sub ErrorHandler: '-- 例外処理 MsgBox Err.Number & ":" & Err.Description, vbCritical & vbOKOnly, "エラー" End Sub このようにすると、エラーが発生した時点で「On Error GoTo ラベル名」に指定したラベル名(上記の例ではErrorHandler)に飛ぶ。 エラーごとにキャッチしたい ひとつの例外しか
![【VBA】例外処理(Try-Catch-Finally)を使う方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/b0273fbbfab96f388394e5126bfdb7ec511fa26b/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEhFw5WroVFWaP-71w09BTq0iA87WzWoy2sZbE-pG9gXjXScB-o-AJktalgzAKjjvh5z9JcPHXokj1ZYZG5IdBm29gBhV3K13sdtGk7J8RrFMb34k3olrxtpaJqLNLDHnRLphgXBkFujp0P_%2Fw1200-h630-p-k-no-nu%2FTryCatchFinally.png)