• ベストアンサー

新しいマクロの記録でコピーしたsheet

新しいマクロの記録でシート2のA1~C3までの値をクリアして、シート1のA1~C3までの値を貼り付ける事を記録しました。それを●の図形にマクロの登録をして、●を押すとそれが実行されるようにしました。ここまでは問題なかったのですが、次にシート2をコピーしてシート3という名前にしてシート3の●を押すとシート2にこのマクロが実行されますが、これをシート3で実行させる事はできないでしょうか?昨晩、いろいろやってみましたが、どうしてもわかりません(>_<;)・。どなたか、よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

まぁ,ひっくり返っても出来ないことは出来ない場合も確かにありますが,ご相談の範疇に関して言えば工夫の範囲内です。 >シート2のA1~C3までの値をクリアして、シート1のA1~C3までの値を貼り付ける事を記録しました 手順: シート2を開いた状態で,新しいマクロの記録を開始する A1:C3を選ぶ Deleteキーでクリアする(続く操作により,実はこの手順は不要) A1:C3が選ばれている状態を崩さないよう注意しながら, かつA1セルがアクティブセルになっている事を確認してから, 数式バーに =Sheet1!A1 を記入し, コントロールキーを押しながらEnterする A1:C3に所定の数式が記入されたことを確認する A1:C3が選ばれている状態を崩さないよう注意しながら, A1:C3をCtrl+Cでコピーする その場で型式を選んで貼り付けの値のみ貼り付ける 必要に応じてA1セルをクリックする 必要に応じてESCキーを押してコピーのテカテカを解除する マクロの記録を終了する 図形にマクロを取り付け,図形やセルを別シートにコピーして実行してみる。 以上です。

ponpa22
質問者

お礼

ありがとうございました!!

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2様のおっしゃるとおりで間違いないのですが、出来なければ、もう一度、記録マクロを作って、それを図形に登録してください。それが早いです。技術の違いはやむを得ないことです。無理に実現させようとしても、ひとつで共有化にするには、記録マクロに限界があります。今の段階では、どうしようもないはずです。 >シート2をコピーしてシート3という名前にしてシート3の●を押すと でも、これは本では載っていませんが、ここで、プロシージャも共有出来るという思うのはやめたほうがよいです。だから、基本的に「出来ない」と思ったほうがよいです。一つずつ、マクロを図形から登録してください。 共有型のマクロ--ただし、Sheet1(Sheets(1) では使えません。 また、ブック間では、そのままではコピー出来ません。 Sub ShapeButtonMacro()  With ActiveSheet   If .Index = 1 Then Exit Sub   .Range("A1:C3").ClearContents   ActiveSheet.Previous.Range("A1:C3").Copy .Range("A1")  End With End Sub

ponpa22
質問者

お礼

やはり、その方法しかないようですね… ありがとうございました。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

マクロ自体も複製して、シート2に対応する部分をシート3に、シート1に対応する部分をシート2に書き換えましょう。

ponpa22
質問者

お礼

やはり、その方法しかないようですね… ありがとうございました。

  • pp300a
  • ベストアンサー率12% (11/87)
回答No.1

そりゃそうでしょ 記録したものと同じ条件で実行するわけだから 条件が異なれば希望するとうりにはいかないのがマクロの自動記録 VBEを起動して コードを書き換えなければ思うようにはなりません VBEって何? っていうレベルならば 対応するのは無理です 本を買って勉強しましょう それなりに取り組まないと覚えることはできません

ponpa22
質問者

お礼

やはり無理なようですね… ありがとうございました。

関連するQ&A