この記事ではCLng関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
CLng関数の使い方と注意点
CLng関数は、数値や文字列を整数(Long型)に変換する関数です。
小数を切り捨てたり、文字列の数値を整数に変換したりするときに利用されます。
構文
CLng(式)
- 式 : 変換したい数値または数値文字列
- 戻り値 : Long型の整数
使用例
数値の小数を整数に変換
Sub Sample()
Dim value As Double
Dim result As Long
value = 123.7
result = CLng(value)
Debug.Print result
End Sub
▶ 出力結果
124
単純な四捨五入ではなく銀行丸めが使われます。
銀行丸めについては「⚠️注意」に記載しています。
負の小数を変換
Sub Sample()
Dim value As Double
Dim result As Long
value = -123.7
result = CLng(value)
Debug.Print result
End Sub
▶ 出力結果
-124
こちらも単純な四捨五入ではなく銀行丸めが使われます。
銀行丸めについては「⚠️注意」に記載しています。
文字列を整数に変換
Sub Sample()
Dim strValue As String
Dim result As Long
strValue = "456"
result = CLng(strValue)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
456
Long
→ 数値文字列をLong型に変換できます。
計算結果を整数に変換
Sub Sample()
Dim result As Long
result = CLng(10 / 3)
Debug.Print result
End Sub
▶ 出力結果
3
→ 四捨五入されて3となります。
⚠️注意
単純な四捨五入ではなく銀行丸めが使われる。
CLng関数における四捨五入では、銀行丸め
も行われます。
意図と違う結果になる可能性がある点に注意しましょう。
銀行丸めとは
四捨五入で「ちょうど .5 のとき」、最も近い偶数に丸める方法です。
式 | 結果 |
---|---|
CLng(0.5) | 0 |
CLng(1.5) | 2 |
CLng(2.5) | 2 |
CLng(3.5) | 4 |
CLng(4.5) | 4 |
CLng(5.5) | 6 |
変換できない値はエラー
Sub Sample()
On Error Resume Next
Dim result As Long
Err.Clear
result = CLng("abc")
If Err.Number <> 0 Then Debug.Print "エラー:" & Err.Description
On Error GoTo 0
End Sub
▶ 出力結果
エラー:型が一致しません。
小数は四捨五入される
小数部分は四捨五入されます。
切り捨てたい場合はFix
関数を使用しましょう。
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方