いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【EXCEL】マクロで有効数字を揃えたい

・有効数字を揃えるのが面倒くさい。

・例えば、0.101、0.000345、1.234などのレンジの広いデータが大量にあった場合、有効数字を揃えて表示するのが非常に面倒なことになる。

・有効数字を2桁に揃える場合、少数で表示するならば0.10、0.00035、1.2となる(指数表示に関してはいったんおいておく)。

・書式の変更をデフォルトの関数でやることは難しいので、書式を変更するマクロを作成した(以下)。

 

Sub 有効数字書式()

Dim i, j, keta As Long
Dim y As Single
Dim z As String
On Error GoTo myError

'有効数字の桁数の設定(今回は2桁)
keta = 2

'とりあえず桁を小数点第一位でリフレッシュ(0でバグが出るので)
For i = 1 To Selection.Count
Selection(i).NumberFormatLocal = "0." & 0
Next i


'有効数字書式を設定
For i = 1 To Selection.Count
If Selection(i).Value + 0 = 0 Then
Selection(i).NumberFormatLocal = "0." & 0

Else
y = Log(Selection(i).Value) * (-1) / Log(10) + keta - 2
z = "0"
j = 0
For j = 0 To y
z = z & "0"
Next j
Selection(i).NumberFormatLocal = "0." & z
End If
Next i


myError:

End Sub

 

・NumberFormatLocal というので表示桁数を設定できるらしい。

・使用する際は、①有効数字を2桁に揃えたいセルを囲い、②マクロを実行する。

・マクロ実行前⇒マクロ実行後

f:id:choron81:20210521000326p:plain

 

・動作不良、その他不利益に関して、当方は一切補償しない。

 

・終わり