EXCEL VBA On Error Goto の使い方
EXCEL VBA On Error Goto の使い方
●はじめに
ここでは、On Error Gotoの使い方を説明いたします。VBA実行中にエラーが発生した場合など、指定した場所にジャンプ(跳ぶ)する使い方になります。また、エラーを回避する時にも利用します。一般的な使い方としては、割り算でとかで”0”を割ったエラー処理やFind関数・Match関数などを使う時に、該当する値が無い場合などのエラー処理に利用します。それでは、On Error Gotoの利用方法を説明いたします。
●プログラム説明
下記のサンプルプログラムは、合計金額に対して人数で割る。【割り勘を求めるプログラム】です。ここで、割る人数を0(ゼロ)にした場合、割れないのでエラーが発生します。発生したエラーは、指定したエラーラベル(err_shori:)にジャンプして、エラーメッセージを表示させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub ERROR01() Dim Gokei, Ninzu As Integer On Error GoTo err_shori 'エラーが発生した場合のジャンプ位置を指定します。 Gokei = inputBox("合計金額の値を入力してください") Ninzu = inputBox("割り勘人数を入力してください") MsgBox "人数での割り勘金額は、" & Gokei / Ninzu & "円です。" '入力した値の計算 Exit Sub err_shori: 'エラーが発生した場合は、この場所に飛びます。 MsgBox "正しく数字を入力してください" End Sub |
●実行結果 ※実際に実行してみましょう。(エラー発生の場合)
下記のでの入力では、人数を0(ゼロ)で割る計算になるので、エラーが発生し、「正しく数字を入力して下さい」とのメッセージが表示されます。
(クリックで拡大表示)
下記のでの入力では、人数を0(ゼロ)で割る計算になるので、エラーが発生し、「正しく数字を入力して下さい」とのメッセージが表示されます。
(クリックで拡大表示)
●実行結果 ※次は、正しく人数を入れて実行してみましょう。(正しく入力した場合)
上記の入力では、割り勘人数を正しく(4)入力したので、10,000÷4=2,500円が計算され「人数での割り勘金額は、2,500円です。」と正しく表示されました。
(クリックで拡大表示)
上記の入力では、割り勘人数を正しく(4)入力したので、10,000÷4=2,500円が計算され「人数での割り勘金額は、2,500円です。」と正しく表示されました。
(クリックで拡大表示)
EXCEL VBA Resumeの使い方
●はじめに
Resumeの使い方の説明をいたします。上記でOn Error Gotoの説明をいたしましたが、On Error Gotoは、エラーが発生した時に、指定した場所にジャンプする命令ですが、Resumuの場合は、エラーが発生してジャンプして、ある処理を実行して指定した場所に戻る命令になします。
●プログラム説明
下記のプログラムの説明ですが、縦と横の数値を入力する事にで面積の計算を行うプログラムです。ここで正しく数値を入力しますと縦×横の計算を行いますが、エラー処理を発生(数値を漢字入力)させると、正しく数値を入力するまで、InputBoxへ戻るプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub ERROR02() Dim Tate, Yoko As Integer Dim Moji As String On Error GoTo err_shori 'エラーが発生した場合のジャンプ位置を指定します。 Input_shori: Tate = InputBox("縦の値を入力してください") Yoko = InputBox("横の値を入力してください") MsgBox "縦×横は、面積は、" & Tate * Yoko & "平方メートルです。" '入力した値の計算 Exit Sub 'Exit Subでプログラムを終了します。 err_shori: 'エラーが発生した場合は、この場所に飛びます。 MsgBox "正しく数字を入力してください" Resume Input_shori 'Resumeで”Input_Shorini戻ります。 End Sub |
●処理実行
順番 | エラーが発生した場合 | 正常終了した場合 |
① | ||
② | ||
③ | ||
④ | ||
説明 | エラーが発生した場合、正しく数値を入力して処理が正常終了するまで、繰り返し値を入力を求めます。(Resume) | 正しく数値を入力した場合は、計算結果を表示して終了します。(Exit Sub) |
最後まで、ご覧いただきまして誠に有難うございました。
On Error Goto の使い方は、他にもありますので、サンプルプログラムを交えて後日、説明いたします。今回については、一番解りやすいと思われるサンプルプログラムでの説明でした。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
On Error Goto の使い方は、他にもありますので、サンプルプログラムを交えて後日、説明いたします。今回については、一番解りやすいと思われるサンプルプログラムでの説明でした。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。