この記事では、VBAマクロを使用して10の位(右から2番目の桁)で数値を四捨五入・切り捨て・切り上げる方法について解説していきます。
ポイントとしてはVBAマクロの関数である
・WorksheetFunction.Round
・WorksheetFunction.Floor_Math
・WorksheetFunction.Ceiling_Math
を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロにて10の位(右から2番目)で四捨五入する方法【WorksheetFunction.Round】
それでは以下でExcelのマクロを用いて10の位で四捨五入する方法を確認していきます。
今回は、以下のようA2~縦方向に数値が記載されており、この隣の列(B列)に10の位で四捨五入した数値をマクロにて表示させてみます。
具体的には、WorksheetFunction.Round関数を使用して10の位で四捨五入を行う方法を解説します。
Alt +F11にて、VBE画面を開き以下をコピペしましょう。
Sub JuushoGoRounded()
' セル範囲を定義します
Dim KijunRange As Range
Set KijunRange = ThisWorkbook.Sheets("Sheet1").Range("A2:A100")
Dim Index As Long
' サンプルデータの四捨五入を行います
For Index = 1 To KijunRange.Rows.Count
KijunRange.Cells(Index, 2).Value = WorksheetFunction.Round(KijunRange.Cells(Index, 1).Value / 10, 0) * 10
Next Index
End Sub
JuushoGoRoundedが関数名です。
上では対象の数値範囲はA2~A100とざっくりで指定しています。
上記のサンプルコードでは、「Sheet1」のA列にある数値を10で割った後、WorksheetFunction.Round関数を使用して四捨五入を行っています。
その後、その結果に10を掛けることで、元の数値の10の位での四捨五入が完了しています!
なお、どのようなシートでも対応できるように、最終行の取得などを組み合わせれば、自動&綺麗に最後の行のセルまでの処理となりますのでおすすめです。
以下で別途解説しています。
※
VBAマクロにて10の位(右から2番目)で切り捨てする方法【WorksheetFunction.Floor_Math】
次に、VBAマクロにて10の位で数値を切り捨てる方法について解説します。
基本的には、上の10の位での四捨五入と処理方法は同じですね。
切り捨ての場合ではWorksheetFunction.Floor_Math関数を使用します。
Sub JuushoGoFloor()
' セル範囲を定義します
Dim KijunRange As Range
Set KijunRange = ThisWorkbook.Sheets("Sheet1").Range("A2:A100")
Dim Index As Long
' サンプルデータの切り捨てを行います
For Index = 1 To KijunRange.Rows.Count
KijunRange.Cells(Index, 2).Value = WorksheetFunction.Floor_Math(KijunRange.Cells(Index, 1).Value / 10, 1) * 10
Next Index
End Sub
上記のコードでは、WorksheetFunction.Floor_Math関数を利用して10で割った値を切り捨てた後、その結果に10を掛けています。
これにより、10の位で切り捨てる処理を実現しています。
以下が出力結果で、各数値がすべて右から2番目(10の位)で切り捨てされています。
VBAマクロにて10の位(右から2番目)で切り上げする方法【WorksheetFunction.Ceiling_Math】
最後に、10の位で数値を切り上げる方法を解説します。
WorksheetFunction.Ceiling_Math関数を使用して、10の位で数値を切り上げる処理を行います。
Sub JuushoGoCeiling()
' セル範囲を定義します
Dim KijunRange As Range
Set KijunRange = ThisWorkbook.Sheets("Sheet1").Range("A2:A100")
Dim Index As Long
' サンプルデータの切り上げを行います
For Index = 1 To KijunRange.Rows.Count
KijunRange.Cells(Index, 2).Value = WorksheetFunction.Ceiling_Math(KijunRange.Cells(Index, 1).Value / 10, 1) * 10
Next Index
End Sub
このコードでは、WorksheetFunction.Ceiling_Math関数を使用して、10で割った値を切り上げた後、その結果に10を掛けることで、10の位で切り上げる処理を実現しています。
まとめ マクロで10の位で切り捨て・切り上げをする方法【WorksheetFunction.Round, WorksheetFunction.Floor_Math, WorksheetFunction.Ceiling_Math】
今回は、VBAマクロを利用して10の位(右から2桁目)で四捨五入、切り捨て、切り上げを行う方法を解説しました。
これにより、データ分析やレポート作成時に数値データの整形が簡単に行えるようになります。
特定の桁での数値操作は、ビジネスシーンでも非常に有用で、データ処理の効率を向上させることができます。関数を駆使して、Excel VBAでのデータ処理を更に進めていきましょう!
ご質問やフィードバックがありましたら、お気軽にコメントください。読者の皆様の声をお待ちしております!