CVErr関数
CVErr関数は、指定した数値(エラー番号)を、バリアント型のエラー値に変換した値を返す変換関数です。
CVErr関数
この引数は必ず指定します。
CVErr 関数を使用することにより、どのような動作が行われたのかを知らせるエラー番号を返すことができます。
たとえば、CVErr 関数の戻り値をバリアント型以外の変数に直接代入することはできません。
CVErr関数の使用例
' エラーが発生する値 (ここでは、文字列) を引数として指定し、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
CVErr関数を使用して作成するFunctionプロシージャは、戻り型がVariantで指定する事になります。
Variantを使う事自体は問題ありませんが、受け取った呼出し側で正常処理とエラー処理を分けざるを得なくなります。
したがって、この例は実用的なVBAとは言えません。
あくまで、CVErr関数の動作確認のVBAとお考え下さい。
実行時エラー関連記事
データ型変換関数一覧
関数名 | 戻り値の種類 | 引数の範囲 |
CBool関数 | Boolean | 任意の有効な文字列式または数式を指定します。 |
CByte関数 | Byte | 0 から 255。 |
CCur関数 | Currency | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807。 |
CDate関数 | Date | 任意の有効な日付式。 |
CDbl関数 | Double | 負の値の場合は -1.79769313486231E308 ~ -4.94065645841247E-324 正の値の場合は4.94065645841247E-324 ~ 1.79769313486232E308。 |
CDec関数 | Decimal | ゼロスケールの値 (小数部分がない値) の場合は 79,228,162,514,264,337,593,543,950,335 です。 小数点以下が 28 桁の値の場合は 7.9228162514264337593543950335 です。 0 以外で可能な最小値は 0.0000000000000000000000000001 です。 |
CInt関数 | Integer | -32,768 から 32,767。 小数点以下は丸められます。 |
CLng関数 | Long | -2,147,483,648 から 2,147,483,647。 小数点以下は丸められます。 |
CLngLng関数 | LongLong | -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807。 小数点以下は丸められます (64 ビット プラットフォームのみで有効)。 |
CLngPtr関数 | LongPtr | 32 ビットのシステムでは -2,147,483,648 ~ 2,147,483,647 64 ビットのシステムでは -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807。 32 ビットと 64 ビットのどちらのシステムでも、小数部分は丸められます。 |
CSng関数 | Single | 負の値の場合は -3.402823E38 ~ -1.401298E-45 正の値の場合は 1.401298E-45 ~ 3.402823E38。 |
CStr関数 | String | CStr の戻り値は、引数に依存します。 |
CVar関数 | Variant | 数値の場合はDoubleと同じ範囲です。 数値以外の場合はStringと同じ範囲です。 |
同じテーマ「VBA関数」の記事
CSng関数
CStr関数
CVar関数
CVErr関数
IsArray関数
IsDate関数
IsEmpty関数
IsError関数
IsMissing関数
IsNull関数
IsNumeric関数
新着記事NEW ・・・新着記事一覧を見る
シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
シート関数のCOUNTIFS,SUMIFS,MAXIFSと同じ処理|Power Query(M言語)入門(2023-02-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。