データ型変換関数

各関数は、指定したデータ型に式を強制的に変換します。

構文

CBool( expression )

CByte( expression )

CCur( expression )

CDate( expression )

CDbl( expression )

CDec( expression )

CInt( expression )

CLng( expression )

CSng( expression )

CStr( expression )

CVar( expression )

必須の expression引数 は、任意の文字列式または数値式です。

戻り値の型

次に示すように、戻り値の型は関数名によって異なります。

関数

戻り値の型

引数 expression の範囲

CBool

ブール値型

任意の有効な文字列式または数式を指定します。

CByte

バイト型

0 から 255。

CCur

通貨型

-922,337,203,685,477.5808 から 922,337,203,685,477.5807。

CDate

日付型

任意の有効な日付式を指定します。

CDbl

倍精度浮動小数点型

-1.79769313486231E308 から
-4.94065645841247E-324 (負の値)。4.94065645841247E-324 から 1.79769313486232E308 (正の値)。

CDec

小数点型

小数点以下の桁数が 0 の場合 (小数部分を持たない場合)、+/-79,228,162,514,264,337,593,543,950,335。小数点以下の桁数が 28 桁の場合、
+/-7.9228162514264337593543950335。最小値は、0 を除いた場合は、0.0000000000000000000000000001。

CInt

整数型

-32,768 から 32,767。小数点以下は丸められます。

CLng

長整数型

-2,147,483,648 から 2,147,483,647。小数点以下は丸められます。

CSng

単精度浮動小数点型

-3.402823E38 から -1.401298E-45 (負の値)。1.401298E-45 から 3.402823E38 (正の値)。

CStr

文字列

CStr の戻り値は expression 引数に依存します。

CVar

バリアント型

数値の場合は倍精度浮動小数点型の範囲と同です。数値以外の場合は文字列型の範囲と同じです。


解説

関数に渡された expression が、変換されるデータ型の範囲外である場合は、エラーが発生します。

一般に、データ型の変換関数を使用してコードを文書化し、一部の演算の結果が既定のデータ型ではなく、特定のデータ型として表示されるように指定できます。たとえば、通常、単精度、倍精度、整数演算が発生する場合、CCur を使用して、通貨換算を強制的に実行します。

国際的に通用する 1 つのデータ型から別のデータ型に変換するには、Val ではなく、データ型の変換関数を使用する必要があります。たとえば、CCur を使用すると、使用しているコンピューターのロケールに応じて、異なる少数点の区切り文字や桁区切り記号、さまざまな通貨オプションが適切に認識されます。

小数点以下が 0.5 の場合、CInt および CLng は、常に一番近い偶数に数値を丸めます。たとえば、0.5 は 0 に、1.5 は 2 に丸められます。CInt および CLng は、Fix 関数および Int 関数とは異なります。これらの関数は、小数点の部分を丸めるのではなく切り捨てます。また、Fix および Int は、常に渡されたのと同じ型の値を返します。

IsDate 関数を使用して、date で日付と時刻のどちらに変換するかを決定します。CDate は、日付リテラルを認識します。また、許容範囲内の日付に当てはまる数字も認識します。数字を日付に変換すると、整数全体が日付に変換されます。数字の分数の部分は、午前 12 時を起点にした時刻に変換されます。

CDate は、使用しているシステムのロケール設定に応じて、日付の書式設定を認識します。認識されている日付設定以外の書式設定が提供されている場合、日、月、年の順番を正しく決定できないことがあります。さらに、1 週間の文字列が含まれる場合、長い日付の書式設定は認識されません。

CVDate 関数は、Visual Basic の旧バージョンとも互換性があります。CVDate 関数の構文は、CDate 関数と同じです。ただし、CVDate は、サブタイプが実際の日付型ではなく、日付であるバライアント型を返します。組み込みの日付型が利用できるようになったため、CVDate を使用する必要がなくなりました。式を日付に変換して、バリアント型に割り当てることで、同じ効果が得られます。これは、他のすべての組み込みタイプを同等のバリアント型サブタイプに変換する方法と同じです。

注: CDec 関数は独立したデータ型を返しません。値が 10 進型サブタイプに変換されたバリアント型を常に返します。

注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

CBool 関数

ヒント:  Access 2010 から導入された IntelliSense を使用した式ビルダーにより、式をより正確に作成できるようになりました。

この例では、CBool 関数を使用して、式をブール値に変換します。式が 0 以外の値に評価された場合、CBoolTrue を返します。それ以外の値に評価された場合は、False を返します。

Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.

CByte 関数

この例では、CByte 関数を使用して式をバイト型に変換します。

Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.

CCur 関数

この例では、CCur 関数を使用して式を通貨型に変換します。

Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).

CDate 関数

この例では CDate 関数を使用し、文字列を日付型に変換します。一般に、この例で示すように、文字列として日付と時刻をハードコードするのはお勧めしません。代わりに、2/12/1969# や #4:45:23 PM# などの日付リテラルを使用します。

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)

CDbl 関数

この例では、CDbl 関数を使用して式を倍精度浮動小数点型に変換します。

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

CDec 関数​​

この例では、CDec 関数を使用して数値を 10 進型に変換します。

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.

CInt 関数

この例では、CInt 関数を使用して値を整数型に変換します。

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.

CLng 関数

この例では、CLng 関数を使用して値を長整数型に変換します。

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

CSng 関数

この例では、CSng 関数を使用して値を単精度浮動小数点型に変換します。

Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

CStr 関数​​

この例では、CStr 関数を使用して数値を文字列型に変換します。

Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

CVar 関数

この例では、CVar 関数を使用して式をバリアント型に変換します。

Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×