映画のエンドロール観る派?観ない派?

マクロは初心者ですが、マクロを利用して数式を貼り付けたいです。
苦戦して自分の考えたマクロ、失敗します。

ex A3に入っている数式(=A1+A2)を、適当に選択したセルに、マクロを利用して貼り付けたいです。
ショートカットキーを登録するマクロの方法ではなく、コードだけで登録する方法があればご教授お願いしたいのですが、↓のコードの何が間違っているのでしょうか?

Range("A3").Copy
Selection.PasteSpecial Paste:=xlFormulas

宜しくお願いします。

A 回答 (4件)

ANo.3です。


そうであればA3の数式を相対参照にして
のところは
そうであればA3の数式を絶対参照にして
の誤りです。
    • good
    • 0

提示されたコードで正常に動作するようです。


以下は違っていれば読み流して下さい>。
例えばA3の数式をB3にコピーすると=B1+B2になるので
失敗すると言っているのでしょうか。
これは数式が相対参照になっているので正常なことです。
どのセルにコピーしても数式(=A1+A2)としたいのでしょうか。
そうであればA3の数式を相対参照にして
=$A$1+$A$2すればよいと思います。
    • good
    • 0

提示されたコードで動作はします。


何をもって失敗と言われているのですか?
意図した結果とどう異なるのですか?

(例1)
Selection.Formula = Range("A3").Formula
(例2)
Range("A3:E3").Formula = Range("A3").Formula
    • good
    • 0
この回答へのお礼

数式を絶対参照にすると上手くいきました。
ご回答有難うございました。

お礼日時:2011/11/24 14:22

多分、コピー元とコピー先のセルが、両方とも"A3"になっているのではないでしょうか?


Selection を任意のRangeにしてみてください。

行いたい手順を、「マクロの記録」で記録してから書き換えると楽ですよ。
ちなみに、Copyメソッドは、CellsやRangeが対象ですが、Pasteメソッドは、ワークシートが対象です。

参考URLには、ご質問の処理と、簡単な解説がありますので、ご参考まで。

慣れたら、SelectionやActiveなオブジェクトを対象として処理をするのではなく、Workbooks/Worksheets/Range/Cellsなどのプログラム内で明示的なオブジェクトで処理するようにしましょう。

参考URL:http://www.officepro.jp/excelvba/cell_edit/index …
    • good
    • 0
この回答へのお礼

早速のご回答有難うございました!
しかし、マクロは超初心者の為、回答内容も理解に苦戦しております。
ネットでもかなり調べているのですが、まだまだ基本的な事から勉強する必要があるみたいです。 ご回答頂きまして、重ねて、お礼申し上げます。

お礼日時:2011/11/22 16:48

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