マクロ エクセルシートのコピー


エクセルのシートに
並べ替えのマクロとボタンを作成しました。

これをヒナガタとして、同じブック内に
マクロごとシートをコピーする方法を教えてください。

各シートごとに並べ替えを作動したいので
マクロの保存先は「作業中のブック」にしてあります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/22 17:18:19
  • 終了:2011/08/24 14:16:29

回答(3件)

id:kopj No.1

kopj回答回数123ベストアンサー獲得回数62011/08/22 17:24:10

ポイント34pt

マクロがそのシートに記述してあればシートをコピーするだけでマクロもコピーされます。

http://support.microsoft.com/kb/881127/ja

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/08/22 20:00:54

ポイント33pt

マクロ内に下記のようにシートを選択する記述があれば削除しましょう

そうすればマクロ実行時にアクティブなシートを対象にしてソートが実施されます

Sheets("Sheet1").Select ←この場合であれば常にSheet1を対象にしてしまうので、この行を削除
Columns("A:B").Select ← ここはソート範囲の指定なので消してはいけないRange("A2:B6").Select といったような指定の場合もある
Selection.Sort Key1:= ・・・以下略 ← ソート条件とソートの実行なので、この行以下も必須
id:yyok No.3

yyok回答回数59ベストアンサー獲得回数32011/08/23 18:39:33

ポイント33pt

作成したマクロは「標準モジュール」に保存してある、という前提で説明します。

まず作成したマクロ内でワークシートを参照している部分が

Worksheets("Sheet1"). のようにシート名になっていたらこれを

ActiveSheet. と変えてください。

それから作成したマクロがPrivateになっていたらPublicに変えてください。

ワークシートのマクロからは、この標準モジュールに作成したマクロを呼び出すだけにします。

  • id:keromancang
    早速にありがとうございます。
    質問が足りませんでした。

    単純な、シートのコピーで
    マクロつきの新シートがコピーされるのですが
    うまくいきません。

    新シートのマクロボタンをクリックすると
    元シートの並べ替えになってしまいます。

    ボタンの登録か、マクロの記録のどこかが
    間違っているのでしょうが、わからないのです。

    新シートと元シートが連動しないように
    シートごとでマクロが作動するには
    どうしたらよいのでしょうか。
  • id:kopj
    標準モジュールに モジュールのファイルがあったら削除してみましょう。
  • id:windofjuly
    うぃんど 2011/08/22 20:07:47
    id:kopj さんへ
     
    >マクロの保存先は「作業中のブック」
    この記述がある時点で、No.1のような回答を求めているのではないと気づくべきかもしれません
     
    >標準モジュールに モジュールのファイルがあったら削除してみましょう
    相手のスキルも相手の扱っているxlsファイルがどのようなものかも判らない状態で安直に削除を勧めるべきではないでしょう
    削除を勧めるほうが良いとの判断であったのかもしれませんが、少なくともxlsファイルのバックアップコピーもあわせて教えてあげると思わぬトラブルも防げますよね
     
    以上、横槍失礼しました
  • id:keromancang
    みなさまご回答ありがとうございました。

    どうも質問がうまくなく、まだ解決できません。

    画像をつけたりして、あらためて質問しなおさせていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません