[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロより数式を優先する』(ぴぴ)
はじめまして。
元々マクロを使って作成されている業績表があるのですが、一部間違った考え方でマクロをくんでいるため、誤った結果になる箇所があります。
数式を入力すれば正しい値が得られるのですが、マクロのせいで更新すると数式ごと消えてまた元の誤った結果になってしまいます。
マクロのことは全くわかっていないので、マクロのどの部分を削除すればいいのか検討がつきません。
マクロより、入力している数式を優先させる方法というのはないのでしょうか?
説明下手でわかりづらいかもしれませんが、よろしく御願い致します。
開くときにマクロを有効にしなければよいのでは? (seiya)
それなら、該当マクロを削除するしかないでしょう... VB Editor(マクロ編集画面) に入れますか? (seiya)
ありがとうございました☆
(ぴぴ)
>全くマクロを有効にしないという訳にはいかないのです
>数式を入力すれば正しい値が得られるのですが、 >マクロのせいで更新すると数式ごと消えてまた元の誤った結果になってしまいます。
>何か別の方法を考えてみます。
あまり褒められた方法ではないのですが、数式を入力する操作をマクロに記録し、 そのマクロを既存のマクロの最後に走らせる様にすれば、一時しのぎはできます。 (時間があるときに抜本的修正をする)
(半平太)
A B C D
1売上高 ¥300 ¥1200
2 4月 5月
3 案件 受注額 精算日 精算月
4 あ ¥100 07/4/1 4月
5 い ¥200 07/4/15 4月
6 う ¥300 07/5/10 5月
7 え ¥400 07/5/12 5月
8 お ¥500 07/5/15 5月
という様な表があります。今B1には =SUMIF($D$4:$D$8,B2,$B$4:$B$8)という数式を入れています。
これをマクロにするとしたらどうすればよいのでしょうか?
(ぴぴ)
単純に一行、こんなものですよ ^^ ↓ Sub Macro1() Range("B1").FormulaR1C1 = "=SUMIF(R4C4:R8C4,R[1]C,R4C2:R8C2)" End Sub
※ 上は、当該シートがアクティブになっているのが前提になっています。 もし、そうなっていない恐れがあるときは下の様にして、「Sheet1」に実際のシート名を入れて下さい。
Sub Macro1() Worksheets("Sheet1").Range("B1").FormulaR1C1 = "=SUMIF(R4C4:R8C4,R[1]C,R4C2:R8C2)" End Sub
(半平太)
半平太さん、ありがとうございました。
(ぴぴ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.