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】CSng関数|値を単精度浮動小数点数(Single型)に変換する方法と注意点

Last updated at Posted at 2025-09-04

この記事ではCSng関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。

CSng関数の使い方と注意点

CSng関数は、数値や文字列を単精度浮動小数点数(Single型)に変換する関数です。
小数を扱いたい場合や、計算精度を制御したい場合に利用されます。

構文

CSng()
  • : 変換したい数値または数値文字列
  • 戻り値 : Single型の数値

使用例

小数をSingle型に変換

Sub Sample()
    Dim value As Double
    Dim result As Single
    
    value = 123.456
    result = CSng(value)
    
    Debug.Print result
    Debug.Print TypeName(result)
End Sub

▶ 出力結果

123.456
Single

→ Double型の値をSingle型に変換できます。

数値文字列をSingle型に変換

Sub Sample()
    Dim strValue As String
    Dim result As Single
    
    strValue = "789.123"
    result = CSng(strValue)
    
    Debug.Print result
    Debug.Print TypeName(result)
End Sub

▶ 出力結果

789.123
Single

→ 数値文字列をSingle型に変換できます。

計算結果をSingle型に変換

Sub Sample()
    Dim result As Single
    
    result = CSng(10 / 3)
    
    Debug.Print result
End Sub

▶ 出力結果

3.333333

→ 計算結果をSingle型で保持できます。

⚠️注意

精度に注意

Single型は約7桁の精度しかないため、Double型よりも丸め誤差が生じやすいです。
高精度な計算が必要な場合はDouble型を使用してください。

Sub Sample()
    Dim MyDouble As Double, MySingle As Single
    
    MyDouble = 1234567.89
    MySingle = CSng(MyDouble)
    
    Debug.Print MyDouble
    Debug.Print MySingle
End Sub

▶ 出力結果

1234567.89 
1234568

→ 精度が失われていることに注意。

変換できない値はエラー

Sub Sample()
    On Error Resume Next

    Dim result As Single

    Err.Clear
    result = CSng("abc")

    If Err.Number <> 0 Then Debug.Print "エラー:" & Err.Description

    On Error GoTo 0
End Sub

▶ 出力結果

エラー:型が一致しません。

範囲外の値はオーバーフロー

Single型の最大値(約3.402823E38)を超える値はオーバーフローになります。

Sub Sample()
    On Error Resume Next

    Dim result As Single
    
    result = CSng(1E+40)
    
    If Err.Number <> 0 Then Debug.Print "エラー:" & Err.Description
    
    On Error GoTo 0
End Sub

▶ 出力結果

エラー:オーバーフローしました。

その他の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?