Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » WorksheetFunction.Sumで「1.333」「1.225」「-1.333」「-1.225」の入力されているセルを合計すると…

WorksheetFunction.Sumで「1.333」「1.225」「-1.333」「-1.225」の入力されているセルを合計すると…

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2401(ビルド17204.20000クイック実行)ベータチャネル

Excelで、「=1.333+1.225-1.333-1.225」なら「0」に「=(1.333+1.225-1.333-1.225)」ならば「-2.220446049250310E-16」になること、SUM関数の引数の指定方法によって結果が異なることを記事にしました。

Excel VBAのWorksheetFunctionオブジェクトのSumメソッドを使う場合、引数の指定方法によって結果が異なります。

[スポンサードリンク]

WorksheetFunction.Sumを使ったSubプロシージャ

A1:A4セルに、

1.333
1.225
-1.333
-1.225

を代入しておいてから、以下のSubプロシージャを実行しました。

Sub test()
 Debug.Print WorksheetFunction.Sum([A1:A4])
 Debug.Print WorksheetFunction.Sum([A1], [A2], [A3], [A4])
 Debug.Print WorksheetFunction.Sum([A1:A4].Value)
 Debug.Print WorksheetFunction.Sum([A1].Value, [A2].Value, [A3].Value, [A4].Value)
End Sub

実行結果

イミディエイトウィンドウへの出力結果は以下のとおりです。

0
0
-2.22044604925031E-16
-2.22044604925031E-16

「.Value」を書かなければ「0」になり、

Debug.Print WorksheetFunction.Sum([A1:A4])
Debug.Print WorksheetFunction.Sum([A1], [A2], [A3], [A4])

「.Value」まで記述すると「-2.22044604925031E-16」が出力されています。

Debug.Print WorksheetFunction.Sum([A1:A4].Value)
Debug.Print WorksheetFunction.Sum([A1].Value, [A2].Value, [A3].Value, [A4].Value)

「1.333」「1.225」「-1.333」「-1.225」の入力されているセルをSUM関数の引数に指定した場合に「0」が返され、SUM関数の引数に「1.333」「1.225」「-1.333」「-1.225」を直接指定した場合には「0」にならなかったのと対応する結果といえそうです。

最終更新日時:2024-01-11 09:57

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » WorksheetFunction.Sumで「1.333」「1.225」「-1.333」「-1.225」の入力されているセルを合計すると…

「WorksheetFunction」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.