Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

構文

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 の場合、 CIntCLng は常に最も近い偶数に丸めます。 たとえば、0.5 は 0 に、1.5 は 2 に丸めます。 CIntCLng は、数値の小数部を丸めるのではなく切り捨てる Fix 関数と Int 関数とは異なります。 また、 FixInt は 、渡されたのと同じ型の値を常に返します。

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 以外の値に評価された場合、 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.

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。