四捨五入、切り捨て(WorksheetFunction)

前半はVBA関数の話し、後半はモジュールのコードでワークシート関数を使う方法(WorksheetFunction)。

四捨五入はVBA.Round(数値)を、切り捨てはVBA.Int(数値)を使う。以下はイミディエイトウィンドウに入力する。?から始める文字列の行が入力する。他は出力行。

?vba.Int(1.3343)       'Intは符号なし数値、整数を返す
 1          '結果 
?int(-1.1)     
-2             '切り捨てといってもマイナスの場合は注意
?vba.Round(2.1)  '小数点第一位(小数点の位置から見て右方向に1個目)を四捨五入する
 2 
?vba.Round(2.6)
 3
?vba.Round(1.66,1) '第二引数に小数点以下の表示桁数を指定できる。第二引数+1の桁を四捨五入する
 1.7 
?vba.Round(16.6/10)*10   'vba.Round関数は第二引数にマイナスが使えない
 20 

セルで表示する場合は、セルの表示形式で小数点の位置が決まる。セルの表示形式でも四捨五入はできるが表示が変わるだけでデータは変わらない。

一方、セルの中で使うワークシート関数のRoundは、第二引数にマイナスも使える。VBAからワークシート関数を使う場合は、WorksheetFunctionで「.」ドットを使う。同じRound関数ですが、VBAのコードで単にRoundとするとVBAのライブラリのRound。ワークシート関数関数のRound関数を使う場合はWorksheetFunctionがいる。

?excel.WorksheetFunction.Round(16.6,-1)    'ワークシート関数のRoundはマイナスが使える
 20

セル内で使うワークシート関数には、切り捨て、切り上げてもある。 ?から始める文字列の行が入力する。他は出力行。

?excel.WorksheetFunction.RoundDown(2222,-3)
 2000 
?excel.WorksheetFunction.RoundUp(2222,-3)
 3000
(Visited 437 times, 1 visits today)
カテゴリー: 3 習熟のためにイミディエイウィンドウを使う パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です