データ型変換関数
2015/04/08
データ型変換関数の使い方
【書式】
function ( expression )
【項目の説明】
- function ・・・ CBool,CByte,CCur,CDate,CDbl,CDec,CInt,CLng,CLngLng,CLngPtr,CSng,CVar,CStr の各関数(詳細は下表を参照)
- expression ・・・ 任意の文字列式または数式を指定します。この引数は必ず指定します。
関数に渡された引数 expression の値が変換されるデータ型の範囲を超えている場合、エラーが発生します。
データ型変換関数の引数・戻り値
関数 (function) |
戻り値 のデータ型 |
引数(expression)/ 内容 |
CBool | ブール型 (Boolean) |
【引数が数値の場合】 0 ⇒ False を返す / 0 以外 ⇒ True を返す 【引数が文字列の場合】 False ⇒ False を返す / True ⇒ True を返す / その他 ⇒ エラー発生 |
CByte | バイト型(Byte) | 0 ~ 255 上記数値以外はエラーとなります(小数点以下は切り捨て・数値を表す文字列は上記範囲以内であればOK) |
CDbl | 倍精度浮動小数点数型 (Double) |
-1.79769313486231E308 ~ -4.94065645841247E-324(負の値) 4.94065645841247E-324 ~ 1.79769313486232E308(正の値) |
CCur | 通貨型 (Currency) |
-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 上記数値以外はエラーとなります(数値を表す文字列はOK) |
CDate | 日付型 (Date) |
任意の有効な日付式 日付を表す文字列・数値(曜日を表す文字列を含む日付形式はエラーとなります) |
CSng | 単精度浮動小数点数型 (Single) |
-3.402823E38 ~ -1.401298E-45(負の値) 1.401298E-45 ~ 3.402823E38(正の値) 単精度浮動小数点数型で表現しきれない値の場合は丸め込み処理等が行われるため精度は低くなります |
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 変数を 10 進型 (Decimal) として定義することはできません。ここで(Dcec 関数)の戻り値である 10進型(Decimal)は、内部処理形式が Decimal のバリアント型 (Variant) となります |
CInt | 整数型 (Integer) |
-32,768 ~ 32,767(小数部分は丸められます) 上記数値以外はエラーとなります(数値を表す文字列はOK) |
CLng | 長整数型 (Long) |
-2,147,483,648 ~ 2,147,483,647(小数部分は丸められます) 上記数値以外はエラーとなります(数値を表す文字列はOK) |
CLngLng | LongLong | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 小数部分は丸められます 64 ビットプラットフォーム上でのみ有効 |
CLngPtr | LongPtr | LongPtr は、32 ビットシステム環境では Long 型、64 ビットシステム環境では LongLong 型に変換され、システムの双方で小数部分は丸められます LongPtr 型 を使用すると、32 ビットと 64 ビットの両環境で実行できる移植可能なコードを記述できます |
CVar | バリアント型 (Variant) |
数値の場合は倍精度浮動小数点数型の範囲と同じ 数値以外の場合は、文字列型の範囲と同じ バリアント型 (Variant) の変数に格納されている値がどのように扱われるかは、VarType 関数で調べることができます |
CStr | 文字列型 (String) |
引数により戻り値は異なります ブール型(Boolean)… 真 (True) または偽 (False) を表す文字列 日付型(Date)… 国別情報で設定されている短い日付を表す文字列 Null 値 … 実行時エラーが発生します Empty 値 … 長さ 0 の文字列 (“”) エラー値 … “エラー値” という文字列とエラー番号 その他の数値 … 数値を表す文字列 |
丸め:基本は、小数点以下第1位を四捨五入します。ただし整数部分が偶数で小数部分がちょうど 0.5 の場合は、小数部分は切り捨てとなります。( 例:12.5 ⇒ 12 )
データ型変換関数の使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
Sub Sample_type_conversion() On Error Resume Next Debug.Print CBool(100 * 0) 'False Debug.Print CBool("true") 'True Debug.Print CBool(100 * 5 / 22) 'True Debug.Print CBool(20 = 100 * 2) 'False Debug.Print CByte(10 - 90) 'エラー(オーバーフロー) Debug.Print CByte(355 / 2) '178 Debug.Print CByte(20.456) '20 Debug.Print CDbl(1.2345987) '1.2345987 Debug.Print CDbl("\20,500") '20500 Debug.Print CDbl(3.1415926) '3.1415926 Debug.Print CCur(120.58) '120.58 Debug.Print CCur("\9000") '9000 Debug.Print CCur(1 / 3) '0.3333 Debug.Print CDate("5/1") '2015/05/01 Debug.Print CDate("February 12, 1969") '1869/02/12 Debug.Print CDate("13:15") '13:15:00 Debug.Print CDate(38072) '2004/03/26 Debug.Print CSng(3.1415926) '3.141593 Debug.Print CSng(Sqr(2)) '1.414214 Debug.Print CDec(105.9999999987) '105.9999999987 Debug.Print CDec(100500 * 20000) '2010000000 Debug.Print CInt("55.99") '56 Debug.Print CLng(Sqr(3)) '2 Debug.Print CLngPtr(125 * 99.87) '12484 Debug.Print CVar("2015/1/1") '2015/1/1 Debug.Print CVar(99.87) '99.87 Debug.Print CVar("あいうえお") 'あいうえお End Sub |
実行結果
関連記事
-
インプットボックスを表示する(InputBox関数・InputBoxメソッド)
「InputBox関数」と「InputBoxメソッド」の違い 「InputBox …
-
日付時刻:現在の日付・時刻を取得・設定(Now、Date、Time)
現在の日付・時刻を取得・設定 現在の日付・時刻を取得(Now 関数、Date 関 …
-
VBA の演算子(演算子の優先順位)
演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …
-
ユーザー定義定数(Const ステートメント)
定数を使う ユーザー定義の定数を使用するには、Const ステートメントを使って …
-
文字列:文字列変数内の一部を置き換える(Mid・MidB ステートメント)
Mid・MidB ステートメントの使い方 【書式】 { Mid | MidB } …
-
四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)
Round 関数(丸め)の使い方 【書式】 value = Round ( ex …
-
文字列:文字列右から指定文字数取得(Right 関数,RightB 関数)
Right 関数・RightB 関数 の使い方 【書式】 result_righ …
-
列挙型変数(Enum ステートメント)
列挙型変数を使う 列挙型変数を使用するには、Enum ステートメントを使って、宣 …
-
オブジェクトの書式をクリアする(ClearFormats メソッド)
ClearFormats メソッド 対象となるオブジェクトの書式(スタイル)を初 …
-
エラー(CVErr 関数・IsError 関数・Error 関数)
CVErr 関数(エラー番号をエラー値に変換する)の使い方 【書式】 retur …