エクセルのシートに 並べ替えのマクロとボタンを作成しました。 これをヒナガタとして、同じブック内に マクロごとシートをコピーする方法を教えてください。 各シートごとに並べ替えを作動したいので マクロの保存先は「作業中のブック」にしてあります。
マクロがそのシートに記述してあればシートをコピーするだけでマクロもコピーされます。
http://support.microsoft.com/kb/881127/ja
マクロ内に下記のようにシートを選択する記述があれば削除しましょう
そうすればマクロ実行時にアクティブなシートを対象にしてソートが実施されます
Sheets("Sheet1").Select ←この場合であれば常にSheet1を対象にしてしまうので、この行を削除 Columns("A:B").Select ← ここはソート範囲の指定なので消してはいけないRange("A2:B6").Select といったような指定の場合もある Selection.Sort Key1:= ・・・以下略 ← ソート条件とソートの実行なので、この行以下も必須
作成したマクロは「標準モジュール」に保存してある、という前提で説明します。
まず作成したマクロ内でワークシートを参照している部分が
Worksheets("Sheet1"). のようにシート名になっていたらこれを
ActiveSheet. と変えてください。
それから作成したマクロがPrivateになっていたらPublicに変えてください。
ワークシートのマクロからは、この標準モジュールに作成したマクロを呼び出すだけにします。
質問が足りませんでした。
単純な、シートのコピーで
マクロつきの新シートがコピーされるのですが
うまくいきません。
新シートのマクロボタンをクリックすると
元シートの並べ替えになってしまいます。
ボタンの登録か、マクロの記録のどこかが
間違っているのでしょうが、わからないのです。
新シートと元シートが連動しないように
シートごとでマクロが作動するには
どうしたらよいのでしょうか。
>マクロの保存先は「作業中のブック」
この記述がある時点で、No.1のような回答を求めているのではないと気づくべきかもしれません
>標準モジュールに モジュールのファイルがあったら削除してみましょう
相手のスキルも相手の扱っているxlsファイルがどのようなものかも判らない状態で安直に削除を勧めるべきではないでしょう
削除を勧めるほうが良いとの判断であったのかもしれませんが、少なくともxlsファイルのバックアップコピーもあわせて教えてあげると思わぬトラブルも防げますよね
以上、横槍失礼しました
どうも質問がうまくなく、まだ解決できません。
画像をつけたりして、あらためて質問しなおさせていただきます。