- ベストアンサー
Excel VBA 印刷設定/ヘッダー、フッターの設定
- 「取引情報」シートの取引先名称ごとに別シートにコピーするマクロをつくります。コピー先のシートのみにヘッダー/フッターと印刷範囲の設定を行いたいと思います。
- 自動記録を活用して作業していますが、うまくいきません。
- 参考になるサンプルがあれば、お教えください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コピー直後のアクティブシートをワークシート変数にセットしてあげれば良いかもしれません。 省略している部分が多いので参考程度ですが ワークシートをコピーして (1)名前変更 (2)ヘッダにシート名 (3)フッターにページ数/そうページ をしています。 Sub test() Dim DataSheet As Worksheet ThisWorkbook.Activate '一番後ろにシートをコピー Sheets("元シート").Copy After:=Sheets(ThisWorkbook.Sheets.Count) Set DataSheet = ActiveSheet DataSheet.Name = "変更するシート名" 'ページ設定処理 Call test2(DataSheet) End Sub Sub test2(DataSheet As Worksheet) 'ページ設定(かなり省略) With DataSheet.PageSetup .CenterHeader = "&A" .CenterFooter = "&P/&N" End With End Sub
その他の回答 (2)
- mo2yakko
- ベストアンサー率54% (30/55)
ページ設定の操作をマクロの自動記録すればよいと思います。 ヘッダーとフッターの設定だけですと (1)ツール(T)→マクロ→新しいマクロの記憶を選択 (2)ファイル(F)→ページ設定を選択 ページ設定のダイアログが表示 (3)「ヘッダーフッター」タブをクリック (4)ヘッダーの編集とフッターの編集 で良いかと~
補足
ご回答ありがとうございます。 自動記録はやりました。その後のマクロの書き方が分らないため困っています。 コピーしたシートに、印刷設定とヘッダー/フッターの設定を行うにはどのように書けばよろしいでしょうか。
- mo2yakko
- ベストアンサー率54% (30/55)
どの様にうまくいかないのでしょうか? でないとサンプル提示しようがありません。 あと (1)印刷範囲指定は必須ですか? (2)改ページ等を考慮しますか?(してますか?)
補足
情報が足りず、大変申し訳ございません。 すでに記載しました4行の表をもとにマクロを書きました。 Sub GetSheetName() Dim shFi As Worksheet Dim lnFi As Long Dim st As String Set shFi = Worksheets("rist") For lnFi = 2 To 4 st = shFi.Range("B" & lnFi).Value Sheets("rist1").Copy After:=Sheets(2) 'rist1のシートをコピー Sheets("rist1 (2)").Name = st 'rist1のシートの名前を変更 Next End Sub Sub Macro2() ' ' Macro2 Macro ' Range("A1:G9").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$G$9" End Sub Sub Macro2()はマクロ自動記録で記録したものです。 「rist1」を印刷設定して、ヘッダーにシート名、フッターにページ番号を入れました。 「rist」のシートに元データが入っており、 「rist1」のテンプレートをコピーして、シート名を変更していくマクロです。 コピーしたシートに、印刷設定とヘッダー/フッターを設定したいのですが どのように進めていけば印刷設定できるのか分かりません。 改ページは考えていません。 よろしくお願いいたします。
お礼
詳細なサンプルをご記載頂きまして誠にありがとうございました。わかりやすい内容で非常に助かりました。うまく動きました。