HOME >>エラー処理

今回はエラー処理を書いていきます。

プログラムにはエラー処理は必要です。

自分だけで使用する場合は、動けばいいとは思いますがw

他の人が使う時、知識がない人が使う時などはしっかりとしたエラー処理が必要です。

例えば、下のように値1と値2の乗算の結果を求める処理を書くとします。



通常であればこの様なプログラムになると思います↓

'ボタンの名前 + _Click
Sub ボタン2_Click()
'値を入れる変数宣言
Dim atai1, atai2 As Integer
'値を変数に入れる
atai1 = Range("A2").Value
atai2 = Range("B2").Value

'乗算結果をC2のセルにいれる
Range("C2").Value = atai1 * atai2
End Sub

さて、これではエラーが発生してしまいます。

まず、値の型が数値型なので、値1か値2に文字を入力してみてください。

この様なエラーが出ると思います↓



数字型に文字が入ったので型が一致しないというエラーです。

これを防ぐ為には計算前に数字型がどうかをチェックしましょう。

IsNumeric関数を使用します。

IsNumeric(値)と指定すると、数値の場合はTrueを違う場合はFalseを返します。

'ボタンの名前 + _Click
Sub ボタン2_Click()
'数値がどうかをチェックし、数値なら変数に入れる
If IsNumeric(Range("A2").Value) And IsNumeric(Range("B2").Value) Then
   atai1 = Range("A2").Value
   atai2 = Range("B2").Value
Else
  
'数値じゃない場合はエラーメッセージを出し、処理を抜ける
   MsgBox ("数字を入力してください")
   Exit Sub
End If
End Sub

これで文字が入力された時はエラー処理が出来ます。

他にも値1と値2に大きな数字が入力されたらどうでしょうか?

例えば値1と値2に5555555と入力して実行してみてください。

この様なメッセージが出ませんか↓



これはIntegerの範囲以上の計算結果の場合に出るエラーです。

対策としては入力桁の制限か、エラーが発生した時にエラー処理に飛ぶようにします。

処理の前に「On Error Goto ***」を追加します

***の場所に好きな名前を付けます。
今回はErrとします。

その下に、付けた名前(Err)を書きます。

'ボタンの名前 + _Click
Sub ボタン2_Click()
'エラーが発生したら、Err1へ
On Error GoTo Err
'値を入れる変数宣言
Dim atai1, atai2 As Integer
'値を変数に入れる
atai1 = Range("A2").Value
atai2 = Range("B2").Value

'乗算結果をC2のセルにいれる
Range("C2").Value = atai1 * atai2
Exit sub

'エラー発生時はこの処理を実行する
Err:
'エラーメッセージを表示
MsgBox (Err.Description)
End Sub

On Error Gotoを記述する事により、エラー対応もできます。

Err.Description
でエラーの内容を出力できます。

この様にエラー処理はとても大事な事です。

いろんな状況を考えてエラー処理をしましょう。


次はリストボックスについて書いていきたいと思います。


      

アクセスカウンター

関連書籍

inserted by FC2 system