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プロシージャを実行しました。
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」の入力されているセルを合計すると…