プロが教えるわが家の防犯対策術!

Excelのマクロでシートを作成する際に、そのシートにマクロを埋め込みたいです。
概要としては
大元のデータ(数万件)別シートにあり、そこに記載されている企業コード別に
シート(シート名は企業コード)を作成し、そこにオートフィルタのマクロを入れて、
シート表示時に企業コード毎のデータを取り出す、というものになります。

企業コード別にシートを作成する部分まではできているのですが、
Sheets.Add after:=ActiveSheet というコードのあとでどういう記述を行えば、
「マクロを埋め込んだシートを作成する」という状態になるのでしょうか。

※企業コード別にシートを作成するマクロについては下記を参照致しました。
 ttps://ecdtejun.work/archives/1360

ご教授の程、宜しくお願い致します。

A 回答 (1件)

Sheets.Addメソッドで新しいシートを作るのではなく、Sheets.Copyメソッドでひな型(シートモジュールが書いてある)シートをコピーすれば、マクロも一緒にコピーされるようです。



ただ、シート毎にマクロをコピーする必要は無いような気がします。
ThisWorkbookモジュールのWorkbook_SheetActivateイベントプロシジャにマクロを書いてしまえば、いずれかのシートがアクティブになる都度、実行することができます。アクティブになったシート名も拾うことができるので、シート毎に処理分岐も可能です。何といってもメンテが楽になります。
    • good
    • 0
この回答へのお礼

Sheets.Copy でうまく動作できました!
大変ありがとうございました!
ただアクティブになる都度実行するには膨大なデータだったので、
ご指摘の通りイベントに書いて1度の起動で済ませるようにします…。

お礼日時:2019/05/06 14:42

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A