スキップしてメイン コンテンツへ

データ型変換関数

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

構文

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

IsDate関数を使用して、 dateを日付または時刻に変換できるかどうかを判断します。 CDateは、日付リテラルと時刻リテラル、および許容される日付の範囲内に含まれるいくつかの数値を認識します。 数値を日付に変換すると、整数部分が日付に変換されます。 数値の小数部は、午前0時から1日後に変換されます。

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

Cvdate関数は、以前のバージョンの Visual Basic との互換性を維持するためにも用意されています。 Cvdate関数の構文はCDate関数と同じですが、 cvdateは、サブタイプが実際の日付型ではなくDateであるVariantを返します。 ここでは、組み込みの日付型であるため、 cvdateの必要はありません。 式を日付に変換してから、バリアント型に代入することで、同じ効果を実現できます。 この手法では、他のすべての組み込み型から同等のバリアント型 (Variant ) への変換が一貫しています。

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

クエリの例

結果

ProductSales から Expr1 として、SalePrice、FinalPrice、CBool (SalePrice>FinalPrice) を選択します。

"SalePrice"、"FinalPrice"、SalePrice が最終価格を超えているかどうかを評価します。 True の場合は "-1"、false の場合は "0" を返します。

ProductSales から Expr1 として、ProductID、CByte (Quantity) を選びます。

"ProductID" を返し、"Quantity" フィールドの値を [バイト書式] に変換し、列 Expr1 で "Quantity" フィールドの値を通貨形式に変換して、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CDate (DateofSale) を選択します。

"ProductID" を返します。 "DateofSale" フィールドの値を日付形式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CDbl (割引) を選択します。

"ProductID" を返し、"割引" フィールドの値を Double 形式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CInt (割引) を選択します。

"ProductID" を返し、"割引" フィールドの値を整数形式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CLng (割引) を選択します。

"ProductID" を返し、"割引" フィールドの値を長い形式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CSng (割引) を選択します。

"ProductID" を返し、"割引" フィールドの値を単一の書式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CStr (割引) を選択します。

"ProductID" を返し、"割引" フィールドの値を文字列形式に変換し、列 Expr1 に表示します。

ProductSales から Expr1 として、ProductID、CVar (割引) を選択します。

"ProductID" を返します。 "割引" フィールドの値を数値型と文字列型 (Double) に変換します。数値以外の値を指定します。

VBA の例

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

CBool 関数

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

この例では、 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.

注:  このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

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

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

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

×