電子書籍の厳選無料作品が豊富!

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

A 回答 (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キーを押してコピーのテカテカを解除する
マクロの記録を終了する
図形にマクロを取り付け,図形やセルを別シートにコピーして実行してみる。
以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/17 21:14

#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
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/02 15:21

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/02 15:21

そりゃそうでしょ


記録したものと同じ条件で実行するわけだから
条件が異なれば希望するとうりにはいかないのがマクロの自動記録

VBEを起動して コードを書き換えなければ思うようにはなりません

VBEって何? っていうレベルならば 対応するのは無理です

本を買って勉強しましょう

それなりに取り組まないと覚えることはできません
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/02 15:22

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