教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA 関数】数値を四捨五入(Application.WorksheetFunction.Round)する方法を教えて!

       f:id:m_kbou:20200420124519p:plain

数値を四捨五入する方法について説明します。ExcelVBAで四捨五入をしたい場合、ワークシートのRound関数を使用する必要があるため、WorksheetFunctionプロパティのRound関数を記述します。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

=======================================================================

Application.WorksheetFunction.Round[数値][四捨五入する桁]

=======================================================================

[説明]:

ExcelVBA内で四捨五入をするには「Application.WorksheetFunction.Round」を使用します。[数値]には四捨五入する数値を記述し、[四捨五入する桁]には四捨五入する桁位置を記述します。[四捨五入する桁]に正の値を記述すると小数点以下負の値を記述すると小数点以上の桁位置が四捨五入されます。内容を纏めると、「[数値]に入力された数値を[四捨五入する桁]で指定した桁位置で四捨五入して下さい。」との意味になります。

[記述例]:

Application.WorksheetFunction.Round(123.45, 1)
Application.WorksheetFunction.Round(123.45, -1)

 

使い方

使い方について、具体的に説明していきます。

四捨五入する桁の値が正の場合

四捨五入する桁の値が正の場合について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    MsgBox Application.WorksheetFunction.Round(123.45, 1)
   
End Sub

-------------------------------------------------

「数値:123.45について小数点第一位(四捨五入する桁の値:1)で四捨五入してMsgBoxで表示して下さい。」との意味になります。

[実行例]:

※小数点第一位が四捨五入された数値:123.5が表示されます。

f:id:m_kbou:20200303114332p:plain

四捨五入する桁の値が正の場合についての説明は以上です。

 

四捨五入する桁の値が負の場合

四捨五入する桁の値が負の場合について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    MsgBox Application.WorksheetFunction.Round(123.45, -1)
   
End Sub

-------------------------------------------------

「数値:123.45について整数値第一位(四捨五入する桁の値:-1)で四捨五入してMsgBoxで表示して下さい。」との意味になります。

[実行例]:

※整数値第一位が四捨五入された数値:120が表示されます。

f:id:m_kbou:20200303114346p:plain

四捨五入する桁の値が負の場合についての説明は以上です。

 

おわりに

今回はExcelVBAで四捨五入する方法について説明しました。VBA関数にはRound関数もありますが、Round関数は数値を整数に丸める関数(例として数値:24.5を数値:24に変換)であって、四捨五入する関数ではありません。注意して下さい。