01-VBA

Excel VBA の エラー処理(Part.1)

お知らせ

こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

目標

VBAのエラー処理の基本を理解して利用できる
Errオブジェクト・Numberプロパティを理解して利用できる

VBAにおけるエラーの概要

VBAにおけるエラーとは

VBAにおけるエラーとはプロシージャの実行中に発生する問題で処理の中断や強制終了の原因となります。

VBAにおけるエラー処理

エラーは全てが致命的な問題となる訳ではありません。また目的とする処理としては必要のないエラーも発生します。このようなエラーに対してはエラーの回避を行いシステムの稼働を止めない方法をとる必要があります。VBAでは、このことを「エラー処理」といい、その処理を行うプログラムのことを「エラートラップ」と呼びます。

プログラミング言語によっては「エラー」は、致命的な問題をさす言葉で使われます。そして、そのようなプログラミング言語では致命的でないものを「例外」と呼びます。その為、これらを回避する手法は「例外処理」と呼ばれます。(VBAではエラー処理と呼びます。)

目的の処理に必要のないエラーとは

一度作成したプロシージャはプログラムなので内容が変わることはありません。ですが、処理の対象となるオブジェクト(変数・配列・セル・シート)はエクセルファイルの状態やユーザーからの操作によって変化します。この変化によって、エラーが引き起こされることがあります。

例えば、入力ボックスに数字を入力してもらって動かすプロシージャがあったとすると、このプロシージャでは数字を格納できる変数を利用していたりします。この時、この変数はInteger型などの数字を扱うもので宣言されているはずですが、もしもユーザーが入力時に間違えて文字列を入力した場合はエラーが発生してしまいます。

こうした場合はエラーによってシステムが止まってしまうよりもユーザーに「正しい値を入力してください」などの注意を促してシステムを止めない方がシステムとして正しい動きと言えます。

このような時にエラー処理を行わせてシステムが停止するのを回避させ稼働を続けるようにします。

エラー処理を行わない場合の処理

エラー処理を行わない場合の処理

シートの準備

次のようなデータベースから社員番号を入力して社員名を検索するプログラムでエラーを発生させてみようと思います。

サンプルプロシージャ1

Sub exampleError()
    
    Dim item As Long
    Dim empColumns As Range
    Dim hitEmp As Range
    
    Set empColumns = Range(Cells(2, 1), Range("A1").End(xlDown))
    item = InputBox("検索する社員の社員番号を入力してください。")
    
    Set hitEmp = empColumns.Find(item, LookAt:=xlWhole)
    
    MsgBox Cells(hitEmp.Row, hitEmp.Column + 1).Value

End Sub

実行結果

エラーが起こるとシステムが停止となります。この停止を回避するためにエラー処理が利用されます。

この記事の試し読みはここまでとなります。

エラー処理の利用方法(基本1)

On Error Resume Nextステートメント

On Error Resume Nextステートメントとは

On Error Resume Nextステートメントの利用方法

On Error Resume Nextステートメントの文法

サンプルプロシージャ2

実行結果

エラー処理の利用方法(基本2)

ErrオブジェクトとNumberプロパティ

ErrオブジェクトとNumberプロパティ

ErrオブジェクトとNumberプロパティの利用方法

サンプルプロシージャ3

実行結果

今回は以上となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

Excel VBA の「Worksheetsプロパティ」と「Sheetsプロパティ」の違いと「Excelの持つシートの種類」

2022年12月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site