サイトについて      連絡先   検索

VBA CInt 関数

はじめに

Excel VBA マクロの CInt 関数を紹介します。

CInt 関数は、指定した値を数値型 (Integer) に変換します。

文字列を数値型に変換したいときに使用します。

他の数値型に変換したいときは次の関数を使用します。使い方は CInt と同じです。

関数
CByteByte
CCurCurrency
CDblDouble
CDecDecimal
CLngLong
CSngSingle
  • 目次
    • 構文
    • 解説
    • 使用例

構文

CInt()
を数値型 (Integer) に変換します。

引数「値」文字列や数値を指定します。
戻り値の型数値型 (Integer)

解説

その数値型の変数に代入しても同様に変換されます。

引数「値」が"1"なら1に変換されます。

引数「値」がTrueなら1に、Falseなら0に変換されます。

Integer など整数の型に変換するとき、引数「値」に少数部があるときは偶数丸めが行われます。偶数丸めとは、丸める桁数の値が 5 のときに偶数になるように丸められることです。それ以外は四捨五入と同じです。

変換前 変換後
0.50
1.52
2.52
3.54

変換できる数値の範囲は、その数値型の範囲 (Integer なら)-32,768 ~ 32,767の間です。

範囲外の値を指定すると「エラー 6 オーバーフローしました。」が発生します。

変換できない値を指定すると「エラー 13 型が一致しません。」が発生します。

変換できるかどうかは「IsNumeric 関数」で判定できます。

使用例

変換できる例


Dim i As Integer
i = CInt("123")
Debug.Print(i)  ' 123

i = CInt("123")
Debug.Print(i)  ' 123

i = CInt("1.5")
Debug.Print(i)  ' 2
  
i = CInt("2.5")
Debug.Print(i)  ' 2

i = CInt("\100")
Debug.Print(i)  ' 100
  
i = CInt("1,000")
Debug.Print(i)  ' 1000

i = CInt(True)
Debug.Print(i)  ' 1

変換できない例


Dim i As Integer

' エラー
i = CInt("32768") ' オーバーフロー

i = CInt("Tips") 

i = CInt("1 0") 

i = CInt("100円") 

i = CInt("1.5g") 

変換できるときだけ変換する。


Dim s As String
s = "Tips"
Dim i As Integer

If IsNumeric(s) = True Then ' 変換できるときだけ実行する
    i = CInt(s)
End If

Val 関数」は自動で適切な型に変換できます。エラーも発生しません。


Dim v As Variant

v = Val("123")
Debug.Print(v) ' 123

v = Val("1.5")
Debug.Print(v) ' 1.5

v = Val("あいう")
Debug.Print(v) ' 0
  • 目次
    • 構文
    • 解説
    • 使用例