データ型変換関数
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 | 
実行結果
関連記事
-  
              
- 
      変数が日付型かどうかをチェックする( IsDate 関数 )IsDate 関数の使い方 【書式】 result = IsDate( expr … 
-  
              
- 
      文字列:文字列変数の値を右詰めまたは左詰めにする(RSet ステートメント・LSet ステートメント)RSet ステートメント・LSet ステートメント 【書式】 < RSet ステ … 
-  
              
- 
      メッセージボックスを表示(MsgBox関数)MsgBox関数 【書式】 result = MsgBox ( Prompt [ … 
-  
              
- 
      変数が配列かどうかをチェックする( IsArray 関数 )IsArray 関数の使い方 【書式】 result = IsArray( va … 
-  
              
- 
      文字列:指定した文字の文字コードを取得する(Asc 関数)Asc 関数 【書式】 result = Asc ( string ) 引数・戻 … 
-  
              
- 
      文字列:文字列の一部を別の文字列で置換(Replace 関数)Replace 関数の使い方 【書式】 result = Replace ( s … 
-  
              
- 
      文字列:文字列の空白を削除(Trim 関数, LTrim関数, RTrim関数)Trim 関数・LTrim 関数・RTrim 関数の使い方 【書式】 <先頭と末 … 
-  
              
- 
      VBA の演算子(比較演算子)比較演算子 比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合 … 
-  
              
- 
      指定したセル範囲のサイズを変更(Resize プロパティ)Resize プロパティ 指定したセル範囲のサイズ(行数や列数)を変更します。 … 
-  
              
- 
      文字列:指定した文字コードに対応する文字を返す(Chr 関数)Chr 関数の使い方 【書式】 result = Chr ( code ) 引数 … 
 
        
