0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】CLng関数|値をLong型整数に変換する方法と注意点

Last updated at Posted at 2025-09-03

この記事では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でよく使う関数一覧&基本の使い方

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?