作ってもらったエクセルシートにroundがことごとく入れて無くて出力結果を見て電卓たたくと同じ答えにならず困るもの。
お役所の方々は特にこういうところにめざといので確実にroundはつけていただきたいところですが・・・
まぁいちいち関数を打つ人でも面倒だし、roundって何?みたいな人に説明するのもばからしい。
後からroundつけて回るのがあまり面倒なので、マクロにしてみた訳です。
配筋図に飽きて現実逃避しているだけですが、使えます。役に立ちますよ
Private Sub addround()
If TypeName(Selection) = “Range” Then
Dim c As Range
Dim f_orig, f_new As String
Dim func As String
Dim keta As Integer
For Each c In Selection
If c.HasFormula And (InStr(1, c.Formula, “round”, 1)) = 0 Then
func = “=round(” ‘roundupとかでも良いのですよ。
keta = 2 ‘見るからに桁
f_orig = c.Formula
f_new = Replace(f_orig, “=”, func)
f_new = f_new & “,” & keta & “)”
c.Formula = f_new
‘MsgBox (c.Address & vbCrLf & “式: ” & f_new)
End If
Next c
Else
MsgBox “セルを選択してから実行してください。”, 16
End If
End Sub
本当はExTools< http://www.geocities.jp/extools1974/>という拡張アドインを改良して組み込んでいるものなので、上のものがそのまますぐ使えるかは未確認。
切り取って貼り付けてマクロ名指定したら選択範囲の数式がround付きになかな?。

コメントを残す

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