データ型変換関数

各関数はを特定のデータ型に変換します。

構文

CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CVar(expression) CStr(expression)

引数 expression には任意の文字列式または数式を指定します。この引数は必ず指定します。

戻り値のデータ型

次に示すように関数名によって戻り値のデータ型が異なります。

関数 戻り値のデータ型 引数 expression の範囲
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 10 進型 (Decimal) 小数点以下が 0 桁 (小数部分を持たない数値) の場合、-79,228,162,514,264,337,593,543,950,335 〜 79,228,162,514,264,337,593,543,950,335。

小数点以下 28 桁の数値の場合、
-7.9228162514264337593543950335 〜 7.9228162514264337593543950335。
絶対値の最小値は 0 を除いた場合、0.0000000000000000000000000001 です。

CInt 整数型 (Integer) -32,768 〜 32,767。小数部分は丸められます。
CLng 長整数型 (Long) -2,147,483,648 〜 2,147,483,647。小数部分は丸められます。
CSng 単精度浮動小数点数型 (Single) -3.402823E38 〜 -1.401298E-45 (負の値)、および 1.401298E-45 〜 3.402823E38 (正の値)。
CVar バリアント型 (Variant) 数値の場合は倍精度浮動小数点数型の範囲と同じ。数値以外の場合は、文字列型の範囲と同じ。
CStr 文字列型 (String) CStr 関数の戻り値は引数 expression により異なります。

解説

関数に渡された引数 expression の値が変換されるデータ型の範囲を超えている場合、エラーが発生します。

通常、既定のデータ型ではなく、特定のデータ型で処理結果を表す必要がある場合に、データ型変換関数を使用してコードを記述します。たとえば、単精度、倍精度、または整数で計算を行うような場合に、CCur 関数を使用して通貨の演算を強制的に行います。

各国の言語に対応するようにあるデータから別のデータに変換する場合は、Val 関数の代わりにデータ型変換関数を使用します。たとえば CCur 関数を使用すると、異なる小数点記号と 1000 単位の区切り記号、およびさまざまな通貨記号がコンピュータの国別情報の設定に応じて正しく処理されます。

小数部分がちょうど 0.5 のとき、CInt 関数および CLng 関数は常に最も近い偶数に値を丸めます。たとえば、0.5 を 0 に、1.5 を 2 にそれぞれ丸めます。CInt 関数および CLng 関数は、数値の小数部分を切り捨てずに丸めるという点で Fix 関数および Int 関数とは異なります。また、Fix 関数および Int.関数は引き渡された値と同じデータ型で常に値を返します。

IsDate 関数を使用すると、引数 date を日付または時刻に変換できるかどうかを調べることができます。CDate 関数は、日付リテラル、時刻リテラル、および有効な日付の範囲に該当する数値を引数として受け取ります。数値を日付に変更する場合、整数部が日付に変換されます。小数点以下の値は、午前 0 時から始まる時刻に変換されます。

CDate 関数は、国別情報に基づいて日付の形式を認識します。認識できない形式で指定された日付がある場合、年、月、および日の正しい順序を判断できないことがあります。また、曜日を表す文字列を含む長い日付形式も認識できません。

Visual Basic の以前のバージョンとの互換性を保つため、CVDate 関数も用意されています。CVDate 関数の構文は、CDate 関数と同じです。ただし、CVDate 関数は日付型ではなく、内部処理形式が Date のバリアント型の値を返します。現在はデータ型として日付型が用意されているので、CVDate 関数は今後必要なくなります。日付型に式を変換し、バリアント型に割り当てることにより、CVDate 関数と同じ戻り値を得ることができます。他のデータ型をバリアント型の内部処理形式に変換する場合も、同じ方法で変換します。

メモ CDec 関数は独立したデータ型で値を返しません。常に内部処理形式 Decimal のバリアント型で値を返します。