Excelで印刷設定を特定のシートから指定されたブック(やシート)にコピーするマクロです。
PageSetup.lzh(18 kBYTE)
以下のような表でブック名やシート名をセットして「印刷設定コピー」マクロを実行すると、コピー元からコピー先へ印刷設定をコピーします。
(コピーするシート数が少なくても、なぜか数秒の時間がかかります…)
A | B | C | D | E | |
1 | |||||
2 | 印刷設定コピーマクロ | ||||
3 | |||||
4 | コピー元ブック名 | コピー元シート名 | |||
5 | book1.xls | Sheet1 | |||
6 | |||||
7 | コピー先ブック名 | コピー先シート名 | 中央フッター | ||
8 | book2.xls | ||||
9 | book3.xls | Sheet2 | |||
10 | book3.xls | Sheet3 | 1-1 | ||
11 |
コピー元を指定しなかった場合は、コピー実行開始時のアクティブシートをコピー元シートとします。
→コピー元設定マクロ
コピー先でブック名のみを指定した場合、対象ブック内の全シートにコピーします。
コピー先シート名のみを指定した場合、コピー元と同じブックのシートとして扱います。
→コピー先設定マクロ
中央フッターを指定しないと、コピー元のフッターがそのままコピー先に反映されます。
これがあるのは、中央フッターにページ番号を自由に指定することを想定しているからです。
右フッターとかに指定したい場合は、マクロを改造して下さい(爆)
ブック名・シート名をいちいち手入力するのは面倒なので、アクティブなシートからブック名・シート名を自動設定するマクロも用意しました。
マクロの記録を使って印刷設定を行うと、ActiveSheet.PageSetup
に対して色々設定しているのが分かる。
当ツールでも、その内容をそのまま使っているだけ。
(なので、バージョン違いで動かない場合でも適当にPageSetupのプロパティーを修正すればきっと動くでしょう。
ちなみに一部の項目(例えばPageSetup.PrintQuality:印刷品質)なんかでは、値が入ってないと実行時エラーになる。その場合はコピー元シートの印刷設定にちゃんと値を指定すればOK)
ところで、実行中のVBAを含んでいるブックは、ThisWorkbook
で指定することが出来る。今までActiveSheet
とかActiveWorkbook
しか知らなかった…なんでVBで自分のクラスを表す単語はMeなのに、これはThisなんだ?(爆)