プロが教える店舗&オフィスのセキュリティ対策術

ExcelのROUND関数を一括解除(削除)したいのですが、
やり方を教えてください。

具体的には、
以下のような計算式
=ROUND('収入データ'!A176/'収入データ'!A181,3)

='収入データ'!A176/'収入データ'!A181
にしたいのです。

sheet内の表中あちこちに、
=ROUND('収入データ'!A26/'収入データ'!A31,3)
=ROUND('収入データ'!A56/'収入データ'!A61,3)
=ROUND('収入データ'!A86/'収入データ'!A91,3)
などのROUND関数が設定されています。

置換で、*や?を使って試してみましたが、
「入力した数式にはエラーがあります。」という
エラーメッセージが出て、うまく実行できません。
そもそも置換機能では一括解除(削除)できないのでしょうか。

以上、よろしくお願いします。

A 回答 (4件)

VBAですが、標準モジュールに下記を貼り付けて、実行する。


Sub test01()
Dim cl As Range
For Each cl In Selection
If cl.HasFormula Then
f1 = cl.Formula
p = InStr(f1, "ROUND")
If p <> 0 Then
s1 = Split(f1, ",")
s2 = Split(s1(0), "(")
f2 = "=" & s2(1)
cl.Formula = f2
End If
End If
Next
End Sub
ROUNDという式のありそうな(大き目の)、セル範囲全体を範囲指定して、実行してください。ROUNDDOWN、ROUNDUPも省かれます。
上記VBAは式のあるセルを対象にし、ROUNDがあるか。あれば、初め式をカンマでわけ、その1番目をとり、再度その1番目を対象に、
それを(でわけその2番目をとり、=と結合したものを式として設定してます。
他の関数はそのままのはずです。
質問者はVBAがはじめてらしいのですが、上げてみます。
    • good
    • 0
この回答へのお礼

ご指摘どおりVBAは初めてです。
Visual Basic Editorを開いて、何とか「標準モジュール」を見つけて、
貼り付けて、実行してみたら、
(実行された数式の解読までは無理ですが・・・)
確かに出来ました!
ありがとうございました。

お礼日時:2006/03/01 17:16

何回かに分ければできます。



検索する文字列:=ROUND(
置換後の文字列:★
[すべて置換]

検索する文字列:,3)
置換後の文字列:
[すべて置換]

検索する文字列:★
置換後の文字列:=
[すべて置換]

以上です。
    • good
    • 2
この回答へのお礼

一度文字列にしてから、ということですね。
ありがとうございました。

お礼日時:2006/03/01 17:18

こんな方法でもよいのでしょうか?


Sub test()
Dim i As Range
Dim j As Long
Dim k As String
For Each i In ActiveSheet.UsedRange
If i.FormulaLocal Like "=ROUND*" Then
j = Len(i.FormulaLocal)
k = Mid(i.FormulaLocal, 8, j)
i.Value = "=" & Left(k, j - 10)
End If
Next
End Sub

この回答への補足

SuperMildさん、上記はもしかしてマクロを使う方法でしょうか。
上記方法を是非とも試してみたいのですが、
私はマクロ使用経験がなく、ハードルが高くて、
今すぐ内容を理解することができません。
・・・申し訳ないです。

補足日時:2006/03/01 12:03
    • good
    • 0
この回答へのお礼

ありがとうございました。
No4の方の情報をもとに何とか実行してみたのですが、残念ながら
「アプリケーション定義またはオブジェクト定義のエラーです。」と出てしまいました。
デバッグを見たら、
i.Value = "=" & Left(k, j - 10)
のところに黄色マークが付いていました。

お礼日時:2006/03/01 17:30

数式のまま変換は出来ないので


1.=ROUND( を aaa= にする
  これで文字列扱いになります aaaは何でも構いません
2.,3)を置換で消します。
3.aaa= を =に変換する。

これでどうでしょう?
    • good
    • 1
この回答へのお礼

ありがとうございます。試してみたら出来ました。

お礼日時:2006/03/01 11:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!