Excel

【初心者でもわかる】 Excel VBA入門 – エラーハンドリングとデバッグ Day 5:


Excel VBA入門シリーズの第5日目です。今日はエラーハンドリングとデバッグについて学びます。プログラムには予期しないエラーが発生することがありますが、エラーハンドリングを行うことでエラーの発生に対処できます。また、デバッグの方法を学ぶことで、プログラムの動作を追跡し問題を解決できます。

・プログラムの実行中にエラーが発生し、それをどう処理すればいいのかわからない。
・プログラムのバグを見つけるためのデバッグ方法ってどうやってやったらいいの?

【このブログの対象者】
 ・Excel VBAの基本的な構文や機能を理解している方。
 ・エラーハンドリングやデバッグの方法に興味のある方。

このブログを見ることで、エラーハンドリングや、デバッグを用いた、プログラムの内容確認を行うことができます。

🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンスです。 エンジニア転職を考えている方やプログラミングに興味がある方、新しいスキルを習得したい方に特におすすめです。

エラーハンドリングとは


エラーハンドリングは、プログラムの実行中に発生するエラーに対処する方法です。以下は、基本的なエラーハンドリングの構文です。

On Error Resume Next
' エラーが発生する可能性のあるコード
On Error GoTo 0

On Error Resume Next ' エラーが発生する可能性のあるコード On Error GoTo 0

エラーハンドリングの使用の具体例


以下の例では、ゼロ除算エラーを回避するためにエラーハンドリングを使用します。こちらでは、10を0で除算したときにエラーがMsgBoxに出るように設定しています。

Sub DivideNumbers()
    On Error Resume Next
    
    Dim dividend As Integer
    Dim divisor As Integer
    Dim result As Double
    
    dividend = 10
    divisor = 0
    
    result = dividend / divisor
    
    If Err.Number <> 0 Then
        MsgBox "エラーが発生しました: " & Err.Description
    Else
        MsgBox "結果: " & result
    End If
    
    On Error GoTo 0
End Sub

プログラムを実行すると、下記のようにMsgBoxにエラーが表示されるように設定できます。

デバッグの使用の具体例


デバッグは、プログラムの動作を追跡してバグやエラーを特定するための方法です。以下は、基本的なデバッグの手法です。

  • ステップ実行: プログラムを一行ずつ実行しながら変数の値やプログラムのフローを確認します。
  • 監視ウィンドウ: 変数の値をリアルタイムに表示し、プログラムの実行中に値の変化を追跡します。
  • ログメッセージ: プログラムの重要な部分にメッセージを表示し、プログラムの実行状況を確認します

以下の例では、デバッグの手法を使ってプログラムを追跡し、変数の値とプログラムのフローを確認します。

具体例2: デバッグの使用

Sub DebugExample()
    Dim num1 As Integer
    Dim num2 As Integer
    Dim result As Integer
    
    num1 = 10
    num2 = 5
    
    Debug.Print "num1の値: " & num1
    Debug.Print "num2の値: " & num2
    
    result = num1 + num2
    Debug.Print "resultの値: " & result
    
    If result > 10 Then
        Debug.Print "結果は10より大きいです"
    Else
        Debug.Print "結果は10以下です"
    End If
End Sub

上記プログラムのように、Debug.Printと記載すると、VBAの画面のイミディエイトで、デバッグが表示されます。実際に実行すると、Debug.Printと記載した、num1, num2の値、resultの値、If分の中の、結果は10より大きいですという値が表示されます。このようにプログラムの状態をデバッグを使うことで確認することができます。

まとめ

  • 本日は、エラーハンドリングとデバッグについて学びました。エラーハンドリングを使えば、プログラムの実行中に発生するエラーに対処できます。また、デバッグの手法を活用すれば、プログラムの動作を追跡しバグやエラーを特定できます。
  • 次回以降も、Excel VBAのさまざまな機能やテクニックを紹介していきますので、お楽しみに!また、Excelの本を手に入れてさらに学習を深めることをおすすめします。エクセルの本を読むことで、より多くの知識と実践的なスキルを身に付けることができます。
🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンス。
私がツナグバに登録してから、求人情報が豊富に届き、自分に合った仕事を見つけることができました。特に、第二新卒向けの求人情報が多いので、自分のスキルや経験を活かしながら新たなキャリアに挑戦することができました。転職活動は不安も多いですが、ツナグバのサポートがあれば、成功への道が明るく感じました。