記事検索

検索ワードを入力してください。
Sky Tech Blog
【VBA】エラーハンドリングの​基本

【VBA】エラーハンドリングの​基本

VBAにおけるエラーハンドリングの基本について説明しています。エラーの種類やエラーハンドリングの重要性、基本的な方法を解説し、プログラムの信頼性と安定性を向上させるための手法を紹介します。

エラーハンドリングは、エラーを適切に処理し、プログラムの実行を続行するためにとても重要です。本記事では、VBAで発生するエラーの種類やハンドリングの基本的な方法について説明します。

VBAで​発生する​エラーの​種類

VBAで発生するエラーは、大きく分けて以下の3つの種類があります。公式でも紹介されているので、こちらも参考にしてみてください。

  • シンタックスエラー

コードが正しい構文に従っていない場合に発生するエラーです。
プログラミング言語の構文規則に違反しているため、コードが正しく解釈されず、実行されません。シンタックスエラーは通常、コードの記述時にすぐに検出されます。一般的な原因としては、スペルミス、括弧の不一致、キーワードの誤用などがあります。

  • ランタイムエラー

コードが実行される際に発生するエラーのことです。
これらのエラーは、コードの構文が正しい場合でも、実行時に予期しない状況や条件が発生したときに起こります。例えば、存在しないファイルを開こうとしたり、ゼロで除算しようとしたりする場合に発生します。ランタイムエラーが発生すると、コードの実行が停止し、エラーメッセージが表示されます。

  • ロジックエラー

プログラムが正常に実行されるものの、期待した結果が得られないエラーのことです。
これは、コードの論理や計算が誤っている場合に発生します。例えば、条件分岐やループの設定ミス、変数の誤った使用などが原因となります。

エラーハンドリングの​重要性

VBAでのエラーハンドリングは、プログラムの信頼性と安定性を保つためにとても大切です。
エラーハンドリングをしっかりやっておくと、予期しないエラーが起きたときにプログラムが止まらず、ユーザーに適切なメッセージを表示できます。

また、エラーの原因を見つけやすくするために、エラーログを記録することもできます。これによって、開発者は問題をすぐに解決でき、プログラムの品質も上がります。さらに、エラーハンドリングをしておくことで、プログラムのメンテナンスが楽になり、将来的な拡張や修正もスムーズに行えます。

エラーハンドリングの​基本

VBAでエラーハンドリングを行うための基本構文は以下の通りです。

On Error GoTo ラベル名
エラーが発生する可能性がある処理
Exit Sub

ラベル名: 
エラー発生時の処理

VBAにはいくつかのエラーハンドリングの方法があります。
以下に代表的なものを紹介します。

  • On Error GoTo

エラーが発生した場合に指定したラベルにジャンプする方法です。上記の基本構文で使用されています。

  • On Error Resume Next

エラーが発生しても無視して次の行に進む方法です。これは、エラーが発生してもプログラムを続行したい場合に使用します。

On Error Resume Next

Dim x As Integer : x = 1 / 0 ' ランタイムエラー: ゼロ除算 <ここでエラーが発生しますが、無視されます>   

' エラーが発生してもスクリプトは続行される
If Err.Number <> 0 Then
  MsgBox "エラーが発生しました: " & Err.Description
End If
  • On Error GoTo 0

エラーハンドリングを無効にする方法です。これを使用すると、エラーが発生した場合に通常のエラーメッセージが表示されます。特定のエラーハンドリングが不要な場合や、エラーハンドリングのリセットに活用することができます。

On Error GoTo ラベル名

Dim x As Integer : x = 1 / 0 ' ランタイムエラー: ゼロ除算

On Error GoTo 0 ' エラーハンドリングを無効にします

' エラーハンドリングが不要なコード
Dim b As Integer : b = 2 / 0 ' ここでエラーが発生すると通常のエラーメッセージが表示

Exit Sub

ラベル名:
  MsgBox "エラーが発生しました: " & Err.Description

いかがでしょうか。
VBAで発生するエラーの種類やエラーハンドリングの重要性、そして基本的なエラーハンドリングの方法について、少しでも理解が深まったでしょうか。エラーハンドリングをしっかり行うことで、プログラムの信頼性と安定性がぐっと上がります。
ぜひ、今回の記事を参考にしてみてください。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム