VBAで印刷設定をコピーする
Excelで特定シートの印刷設定を他のシートにもコピーしたかったのでマクロ化。
コピー対象の印刷設定
・印刷ヘッダ(左、中、右)
・印刷フッタ(左、中、右)
以下ソース
Sub ★印刷設定のコピー() '------------------------------------------ 'setPrintConfig 'ActiveSheetの印刷設定を他のシートにコピーする。 ' 設定対象:印刷ヘッダ(左、中、右)、印刷フッタ(左、中、右) ' '------------------------------------------
Dim lh As String 'LeftHeader Dim ch As String 'centerHeader Dim rh As String 'rightHeader Dim lf As String 'LeftFooter Dim cf As String 'centerFooter Dim rf As String 'rightFooter
Dim fS As Worksheet 'fromSheet Set fS = ActiveSheet
lh = fS.PageSetup.LeftHeader ch = fS.PageSetup.CenterHeader rh = fS.PageSetup.RightHeader lf = fS.PageSetup.LeftFooter cf = fS.PageSetup.CenterFooter rf = fS.PageSetup.RightFooter
Dim ms As String 'startMassage Call addMsg(ms, "印刷設定のコピーを開始します。") Call addMsg(ms, "") Call addMsg(ms, "コピー元シート:" + fS.Name) Call addMsg(ms, "コピーする設定:印刷ヘッダ(左・中・右)および印刷フッタ(左・中・右)") Call addMsg(ms, "") Call addMsg(ms, "コピー元シートの印刷設定を全てのシートにコピーします。よろしいですか?")
Dim ans As Long ans = MsgBox(ms, vbOKCancel, "印刷設定のコピー")
Select Case ans Case vbOK '処理なし
Case vbCancel Exit Sub
End Select
Dim tS As Worksheet 'toSheet For Each tS In Worksheets If tS Is fS Then '処理なし Else '設定のコピー tS.PageSetup.LeftHeader = lh tS.PageSetup.CenterHeader = ch tS.PageSetup.RightHeader = rh tS.PageSetup.LeftFooter = lf tS.PageSetup.CenterFooter = cf tS.PageSetup.RightFooter = rf End If Next
MsgBox "終了"
End Sub Private Sub addMsg(msg As String, addMsg As String) msg = msg + addMsg + vbCrLf End Sub |
と、ここまで作ってから発見しましたが
複数ファイルまとめて設定できるように改造すれば、使えるかも・・・?