各関数は、指定したデータ型に式を強制的に変換します。
構文
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 to -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 関数を使用して、日付を日付または時刻に変換できるかどうかを判断します。 CDate は、日付リテラルと時刻リテラルと、許容される日付の範囲内にある数値を認識します。 数値を日付に変換すると、整数部分が日付に変換されます。 数値の小数部は、午前 0 時から時刻に変換されます。
CDate は、使用しているシステムのロケール設定に応じて、日付の書式設定を認識します。 認識されている日付設定以外の書式設定が提供されている場合、日、月、年の順番を正しく決定できないことがあります。 さらに、1 週間の文字列が含まれる場合、長い日付の書式設定は認識されません。
CVDate 関数は、以前のバージョンの Visual Basic との互換性のためにも提供されます。 CVDate 関数の構文は CDate 関数と同じですが、CVDate は、実際の Date 型ではなくサブタイプが Date である Variant を返します。 組み込みの Date 型が追加されたので、 CVDate は必要ありません。 式を Date に変換し、それを Variant に割り当てることによって、同じ効果を得ることができます。 この手法は、他のすべての組み込み型を同等の Variant サブタイプに変換することと一致します。
注: CDec 関数は独立したデータ型を返しません。値が 10 進型サブタイプに変換されたバリアント型を常に返します。
クエリの例
式 |
結果 |
---|---|
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
"SalePrice"、"FinalPrice" を返し、SalePrice が最終価格より大きいかどうかを評価します。 true の場合は "-1"、false の場合は "0" を返します。 |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
"ProductID" を返し、"Quantity" フィールドの値をバイト形式に変換し、列 Expr1 に表示します。"ProductID" フィールドの値を通貨形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
"ProductID" を返し、"DateofSale" フィールドの値を Date 形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、[割引] フィールドの値を Double 形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、[割引] フィールドの値を整数形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、[割引] フィールドの値を Long 形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、[割引] フィールドの値を単一形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、[割引] フィールドの値を文字列形式に変換し、列 Expr1 に表示します。 |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
"ProductID" を返し、数値の場合は "割引" フィールドの値を Double に変換し、数値以外の値の場合は String に変換します。 |
VBA の例
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の操作の詳細については、「 ACCESS VBA リファレンス」を参照してください。
CBool 関数
この例では、 CBool 関数を使用して式を ブール型 (Boolean) に変換します。 式が 0 以外の値に評価された場合、 CBool は True を返します。それ以外の場合は 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.