こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELで複数の数式を一括で四捨五入にする方法

EXCEL2000です
数式が何十個もあるのですが一括で四捨五入にする方法がわからず、一つずつ四捨五入にする式に入力しなおしています
一括で入力しなおす方法はあるのでしょうか

投稿日時 - 2004-06-19 03:04:12

QNo.897254

暇なときに回答ください

質問者が選んだベストアンサー

見た目だけなら、セルの表示形式で、
  小数点以下の桁での四捨五入(数値の小数点以下の桁数の指定)、
  円(#,###)、千円(#,###,)、百万円(#,###,,)での四捨五入ができます。

下のマクロは、式そのものを指定した桁で四捨五入する算式に書き換えます。
四捨五入の算式に変更したい式が入力された複数セルを選択して下のマクロを実行します。

下のように書き換わります。2桁目を四捨五入した例です。

 =(C12+D12)/D12*100
    ↓
 =ROUND((C12+D12)/D12*100,-2)

マクロ中、
  Const Keta = -2
の『-2』がROUND関数の引数に取り込まれます。状況に合わせて指定してください。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。
出てきたコードウインドウに下記マクロをコピーして貼り付けます。
 ↓
Sub chgFormula()
  Const Keta = -2    '// 四捨五入の桁(Round関数の引数)
  Dim Rng As Range   '// セル
  Dim FML As String   '// 式
  
  For Each Rng In Selection
    FML = Rng.Formula             '// 式を取り出す
    FML = Right(FML, Len(FML) - 1)       '// 『=』を除去
    FML = "=Round(" & FML & "," & Keta & ")"  '// 四捨五入の算式を作る
    
    Rng.Formula = FML
  Next

End Sub

投稿日時 - 2004-06-19 09:12:22

お礼

ありがとうございました
「マクロ」というものを使えば可能だということが分かりました
勉強して挑戦してみます。PCやソフトに何も影響がなければ良いと思っています

投稿日時 - 2004-06-19 10:41:58

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

・エクセルで書式設定は30セルでも40セルでも範囲指定して、一度に1つの書式設定が出来る。
・関数は式の形が同じなら、複写出来るが、基本的には1セル1セル設定です。式の形が違うとどうしようもない。
・見た目だけでよいなら、エクセルの数の書式設定は四捨五入が基本のようなのでそれを使う。
(以下すべてユーザー定義、半角文字)
小数点以下四捨五入 #
100の位で四捨五入 #,
100000の位で四捨五入 #,,
小数点以下3桁で四捨五入 .##
小数点以下2桁で四捨五入 .#
1、10、1000、10000の桁の四捨五入が難しい
%の利用もあるが%文字が出るのが邪魔。かつて、ある方は%の文字を改行し、行高を狭くする回答を上げられていた。

投稿日時 - 2004-06-19 06:22:12

お礼

ありがとうございました
式の形が違うとどうしようもない。と言う事が分かりました

投稿日時 - 2004-06-19 10:39:27

ANo.1

セルの書式設定で設定されてはどうですか?
少数以下を四捨五入?10万の位を四捨五入ですか?

投稿日時 - 2004-06-19 03:33:01

お礼

ありがとうございました
見た目だけでなく、式そのものをできたらいいなと思っています

投稿日時 - 2004-06-19 10:38:33

あなたにオススメの質問