スポンサーリンク
Excelで多数のシートがあるとき、それらの余白設定を、全シートについて統一したいということは多い。
そういう場合、
- シート見出しを右クリック→「すべてのシートを選択」
- 複数シート見出しをShiftキーやCtrlキーで選択
とかで複数シートを選択してからページ設定メニューを使えば、その余白の統一設定じたいはできる。
しかしそうすると、
- シートによって、印刷方向を縦/横と分けたい
- シートによって、用紙サイズをA4/A3などと分けたい
という場合にも、それら設定までまとめて統一されてしまう。
あくまでも、余白設定だけを統一したいということで、この場合はマクロを使えば便利だ。
下記にソースコードを示す。自動記録をヒントに作れる簡単な即席マクロだ。
個人用マクロブックに組み込むと良いだろう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Sub unifyMargins() '全シートの余白を統一 If MsgBox("全シートの余白をアクティブシートに合わせ統一しますか?", vbQuestion + vbOKCancel, "確認") = vbCancel Then Exit Sub Dim leftMg '左余白 Dim rightMg '右余白 Dim topMg '上余白 Dim bottomMg '下余白 Dim headerMg 'ヘッダー Dim footerMg 'フッター Application.ScreenUpdating = False 'アクティブシートの余白を取得 With ActiveSheet.PageSetup leftMg = .LeftMargin '左余白 rightMg = .RightMargin '右余白 topMg = .TopMargin '上余白 bottomMg = .BottomMargin '下余白 headerMg = .HeaderMargin 'ヘッダー footerMg = .FooterMargin 'フッター End With Dim eachWs As Worksheet '取得した余白を全シートに適用 For Each eachWs In Worksheets With eachWs.PageSetup .LeftMargin = leftMg '左余白 .RightMargin = rightMg '右余白 .TopMargin = topMg '上余白 .BottomMargin = bottomMg '下余白 .HeaderMargin = headerMg 'ヘッダー .FooterMargin = footerMg 'フッター End With Next eachWs End Sub |
スポンサーリンク