プロが教えるわが家の防犯対策術!

1.マクロの自動記録で、セルに式を入力すると、
仮にセルA1に
=(D1+E1)/F1
と入れると、
ActiveCell.FormulaR1C1 = "=(RC[3]+RC[4])/RC[5]"
というようにR1C1形式になってしまいます。
他の場合は通常のA1とかE4とかの形式で記録されるのにどうしてでしょうか?

2.これを
ActiveCell.Formula = "=(D1+E1)/F1"
のような形式で記録させる方法はないのでしょうか?

A 回答 (3件)

こんにちは。

maruru01です。

1.
どうしてかははっきり分かりませんが。
R1C1形式で書いてあれば、仮に、A2をクリックして実行した時、ちゃんと、
「=(D2+E2)/F2」
になってくれますが、A1形式だと、そのまま
「=(D1+E1)/F1」
が入ってしまいます。
相対参照にするためではないでしょうか。
もっとも絶対参照で入れても、やはりR1C1形式になるので、統一して、常にR1C1形式で書くようにしているんでしょうね。

2.
自動記録の書式を変える必然性は特にないと思いますが。
自動記録を元にカスタマイズするなら、自分で書き直せばいいことですし。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2003/05/22 16:30

私がやって見たら


Sub test01()
Cells(3, 2).Formula = "=a1*a2"
End Sub
を実行すると、B3の式が=A1*A2になりました。
2000です。
ツール-オプション-全般-R1C1参照形式を利用する
と関係ないと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2003/05/22 16:30

 


>ActiveCell.Formula = "=(D1+E1)/F1"
のような形式で記録させる方法はないのでしょうか?

無いと思いますよ。
以前、私も同じようなことを考えましたがダメでした。
少し期待を抱かせる設定が、Excelのオプションの全般タブにあります。R1C1形式を参照する、というものです。
でも、これはマクロの自動記録の上ではまったく関係ないです。そういう仕様なのだと思いますよ。

自動記録はダメなので、あとはVBエディタ(ツール > マクロ > VisualBasicEditor)を開いて、自分で直すしかないのでは?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2003/05/22 16:29

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