「excelvbaで小数点以下の桁数を取得する」
といった検索キーワードをきっかけにして、アクティブセルの小数点以下桁数を取得するExcel VBAのコードをご紹介しました。
複数セルの小数点以下の最大桁数を取得したい、という要望も結構あるように私は感じています。
小数点以下の最大桁数を取得するサンプルマクロ
以下のExcelマクロを実行すると、A1:A5セルの小数点以下の最大桁数を取得できます。
Dim rng As Range, rng_str As String
Dim decs As Long, decs_max As Long
For Each rng In Range("A1:A5")
rng_str = CStr(rng.Value)
If InStr(rng_str, ".") >= 1 Then
decs = Len(rng_str) - InStr(rng_str, ".")
If decs > decs_max Then decs_max = decs
End If
Next
MsgBox "小数点以下の最大桁数は「" & decs_max & "」です!"
End Subサンプルマクロで行っている処理
上記のサンプルマクロで行っている処理は以下のとおりです。
対象のセル範囲に対してFor Each~Nextループを回して、Range.Valueプロパティで取得した値を文字列変換して変数rng_strに代入しておきます。
For Each rng In Range("A1:A5") rng_str = CStr(rng.Value)
VBAのInStr関数を使って小数点「.」があるかを調べ、存在していたときには小数点以下の桁数を変数decsに代入します。
If InStr(rng_str, ".") >= 1 Then decs = Len(rng_str) - InStr(rng_str, ".")
変数decsとdecs_maxを比較してdecsのほうが大きければ、変数decs_maxの値を変数decsの値に変更です。
If decs > decs_max Then decs_max = decs
- Newer:VBAでExcel.Windowオブジェクトを取得する
- Older:Word VBAで検索して段落を選択する
Home » Excel VBA Rangeオブジェクト » VBAで小数点以下の最大桁数を取得する