VBA関数
CVErr関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
最終更新日:2020-07-13

CVErr関数


CVErr関数は、指定した数値(エラー番号)を、バリアント型のエラー値に変換した値を返す変換関数です。


CVErr関数

CVErr(errornumber)

errornumber には、任意の数値 (エラー番号) を指定します。
この引数は必ず指定します。


CVErr 関数を使用して、作成したプロシージャ内でユーザー定義のエラーを作成できます。
CVErr 関数を使用することにより、どのような動作が行われたのかを知らせるエラー番号を返すことができます。

エラー番号のデータ型を暗黙的に変換することはできません。
たとえば、CVErr 関数の戻り値をバリアント型以外の変数に直接代入することはできません。

使用例.

CVErr 関数を使用して作成するFunctionプロシージャは、戻り型がVariantで指定する事になります。
型指定は極力小さい型で指定すべきであり、これは、あまり良い事ではありません。


ヘルプのサンプルでは、
' エラーが発生する値 (ここでは、文字列) を引数として指定し、Function プロシージャ CalculateDouble を呼び出します。
Sub Test()
  Debug.Print CalculateDouble("345.45robert")
End Sub
' Function プロシージャ CalculateDouble を定義します。
Function CalculateDouble(Number)
  If IsNumeric(Number) Then    ' 受け取った値が数値であれば、
    CalculateDouble = Number * 2  ' 結果を返します。
  Else              ' 数値以外のときは、
    CalculateDouble = CVErr(2001)  ' ユーザー定義のエラー値を返します。
  End If
End Function

このような場合は、CalculateDoubleを呼ぶ前に、数値チェックを行うできです。
つまり、CalculateDoubleを呼ぶ前にIsNumericで検査すべきです。

実行時エラー関連記事

第60回.エラー処理(On Error)
マクロを実行していると、エラーメッセージが表示されマクロ実行が停止してしまう事があります。マクロがエラー停止しては自動化の目的が達成されませんので、エラー停止しないようにしなければなりません。エラーが出ないようにVBAを記述出来ればそれに越したことはありませんが、一切エラーを出さないようにVBAを書くことはかなり困難なものです。
第61回.「On Error GoTo」と「Exit Sub」
「OnErrorGoTo行ラベル」このステートメントは、実行時エラーが発生した時に、制御を指定の行ラベルに移動させるものです。マクロVBAは、エラーが発生するとその時点で停止してしまいます。VBAが実行不能となった場合に、エラー発生したVBAコードで停止します。
第62回.「On Error Resume Next」とErrオブジェクト
「OnErrorResumeNext」ステートメントは、実行時エラーが発生してもマクロVBAを中断せずに、エラーが発生したステートメントの次のステートメントから実行を継続します。マクロVBAは、エラーが発生するとその時点で停止してしまいます。
第134回.Errオブジェクトとユーザー定義エラー
VBA実行時には種々のエラーが発生します。実行時エラーに関する情報は、Errオブジェクトには入っていますので、VBA実行でエラー発生した場合は、Errオブジェクトを参照しエラー内容を調べることになります。Errオブジェクトの使い方と、ユーザー定義エラーの生成方法について解説します。
実行時にトラップ可能なエラー番号一覧と対処
マクロVBA実行時に発生するエラーのエラー番号とエラーメッセージおよび簡単な理由と対策の一覧です。以下の表にあるエラーはトラップ(捕捉)できるエラー一覧になります。OnErrorステートメントおよびErrオブジェクトのNumberロパティを使用して、エラーへの対処を行うことができます。
よくあるVBA実行時エラーの解説と対応
VBAを書き終えて、いざ実行したら意味不明なメッセージが… ここでは初心者向けに、代表的な実行時エラーの解説とその対応について説明します。中級者以上の方は、実行時にトラップ可能なエラー番号一覧と対処 こちらを参考に、エラー対応(OnError等)を実装してください。


※VBA関数一覧

VBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他…18 MicrosoftDocsOfficeV…



同じテーマ「VBA関数」の記事

CSng関数
CStr関数
CVar関数
CVErr関数
IsArray関数
IsDate関数
IsEmpty関数
IsNumeric関数
IsMissing関数
IsObject関数
IsError関数


新着記事NEW ・・・新着記事一覧を見る

import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)
関数内関数(関数のネスト)とスコープ|Python入門(9月18日)
関数の定義(def文)と引数|Python入門(9月18日)
組み込み関数一覧|Python入門(9月17日)
辞書(dict型)|Python入門(9月16日)
入力規則への貼り付けを禁止する|VBA技術解説(9月16日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ