VB6・VBA関数メモ:Error関数

Error関数についてメモしておきます。
この関数はエラー番号に対応したエラーメッセージを取得する関数になります。

Callで指定するか戻り値を取得しないとErrorステートメントとして動作するようなので注意です。
(私が混同して記事を書いていたので修正しました…;)


概要

Error([ErrorNumber])
機能 エラー番号に対応したエラーメッセージを返す
引数 ErrorNumber (省略可)
エラー番号
省略時は最後に発生したエラー番号を使用
Variant型
戻り値 エラー番号に対応したエラーメッセージ Variant型(String型)


使用例

説明 記述例 出力
エラー番号に対応した
エラーメッセージを取得
Dim errStr As String
errStr = Error(11)
Debug.Print errStr
"0 で除算しました。"


動作検証

説明 記述例 出力
引数省略時は一番最後に発生した
エラーメッセージを取得
On Error Resume Next
Error 11
Error 12
Error 13
Debug.Print Error
"型が一致しません。"
戻り値を取得する場合
Error関数として動作する
(エラーメッセージを取得する)
Dim errStr As String
errStr = Error(11)
Debug.Print errStr
"0 で除算しました。"
Callで呼び出すと
Error関数として動作する
(エラーメッセージを取得する)
On Error GoTo ERR_HANDLER

Call Error(11)

Debug.Print "エラーなし"
Exit Sub

ERR_HANDLER:

Debug.Print Err.Description
"エラーなし"
戻り値を取得しない場合
Errorステートメントとして動作する
(エラーを発生させる)
On Error GoTo ERR_HANDLER

Error 11

Exit Sub

ERR_HANDLER:

Debug.Print Err.Description
"0 で除算しました。"


コメント
通りすがりの者です。
Error関数とErrorステートメントを同一のものとして扱われているようですが、2つは別物デス。
戻り値の発生するError関数は基本的にエラー番号のメッセージしか返しません。逆にErrorステートメントは指定のエラーを発生させます。
混同するとややこしいことになるので注意デス。
  • Atsushi
  • 2011/12/02 12:03 PM
>Atsushiさん
ご指摘ありがとうございます!
完全にError関数とErrorステートメント、更にOn Errorステートメントを混同していました…;

ヘルプを見たときにError関数とErrorステートメントがあるのは気づいていたのですが
On Error〜がErrorステートメントだと思い込んでいました…;
しっかりヘルプを読んで書いたつもりでいましたが確認不足ですね…orz
コメントする








    
この記事のトラックバックURL
トラックバック