エラーの場合の処理

 アクセス数: アクセス数
エラーの場合の処理


健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ エラーの場合の処理


プログラムですから、エラーは付き物です。

エラーが無いに越したことはありませんが、予期せぬ事態は起こるもの、とりあえず、エラーが出たけど何が原因か分からないような状況は避けたいものです。


一般的なのはタグ(エラーハンドラ)に飛ばす方法

On Error Goto Err_Handle

    ・・・

    ・・・

    Exit Sub

Err_Handle:

    ’エラーの場合の処理

End Sub


メッセージボックスなどで内容を表示すると分かりやすいです。

(例1)MsgBox Err.Description, vbCritical + vbOKCancel, "タイトル"

(例2)Result = MsgBox(Err.Description, vbCritical + vbOKCancel, "タイトル") ・・・


タイトル部分にプロシージャ名などを入れておくと、どの部分でエラーが起きたのか明確ですね。




エラーが起こることが予期できている場合には、エラーによるプログラム中断を防ぐことも有効です。

Sub aaa()
    Dim a As Single
    On Error Resume Next
    a = 10 / 0
    If Err.Number = 11 Then a = 0 
    Err.Clear
    On Error Goto 0

    MsgBox a
End Sub


4行目で10/0(10÷0)として、0で除算しようとしているため、エラーが発生します。

除算エラー(err.number=11)が出ていたら、aの値を「0」に変更して続行します。

※このエラー番号(11)は、一旦MsgBoxで表示して確認しました。

※割り算の答えに0はありませんが、無理やり0とした例です。


「On Error Goto 0」とすることにより、エラー時の振る舞いがリセットされます。


↓処理を再度続行させるには

Sub aaa()
    Dim a As Single
    Dim b As Single
    On Error GoTo Err_Handle
    a = 10 / b
    Err.Clear
    On Error Goto 0
    MsgBox a
    Exit Sub
Err_Handle:
    If Err.Number = 11 Then b = 1
    Resume
End Sub


変数bは初期化された状態では0ですので、上の例と同じように除算エラーが起こります。

resumeをエラーハンドラ内に置くことにより、エラー発生箇所を再度実行します。

この場合、a = 0 とはならないので、例としては馴染みませんが。




ホーム

 

ひとつ上のページへ はじめに マクロを使う プログラムを動かすために 変数について エラーの場合の処理 計算あれこれ 文字列を操作しよう 命令の種類 コントロール 型について レジストリ Optional 計算結果を返す カタカナ→ローマ字 Option Explicit Application.ScreenUpdating = False Nバック脳トレ


取扱商品一覧へ  ご注文画面へ

 

本物商品、健康情報の「ほんもの冒険スタジオ」
カリカパパイヤ発酵食品、ペット用品の「パパナピ!」
インフォメーション


営業日

月〜土曜日(10:00am〜5:00pm) 日祝定休日


ご注文・お問い合わせについて

・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。

※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。


〜当サイトからのご注文〜

取り扱い商品一覧画面より >>

※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。


〜配達日及び配達時間帯のご指定〜

・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。

[午前中] [14〜16時] [16〜18時] [18〜20時] [19〜21時]


「ほんもの冒険スタジオ」運営


配送料、代金引換手数料について

〜配送料〜

・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。

・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)


〜代金引換手数料〜

・代金引換手数料につきましては、全額当方で負担させていただきます。


お支払い方法

〜代金引換のお客様〜

・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。

カード一覧


〜クレジットカード決済サービス〜

<直接決済は終了しました>

 ペイメント

・お客様登録画面(ご希望商品選択後)にて簡単決済

 カード一覧


〜銀行振込のお客様〜

・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)

お振込先:PayPay銀行  (0033) ビジネス営業部 (005)

 (普通) 1 5 1 8 4 1 7  ヤマモトケンコウドウヤマモトマサハル


Copyright(C) 2005-2024 山本健康堂