ぺージ設定
ページ設定ダイアログは Excel 上部の[ページレイアウト]メニューを選択し、右下にある赤丸部分をクリックすると表示されます。
ページタブ
ページタブ設定例(1)
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("ページ設定1")
'印刷の向き
ws.PageSetup.PageOrientation = XLPageOrientation.Landscape
'拡大/縮小
ws.PageSetup.AdjustTo(80)
'用紙サイズ
ws.PageSetup.PaperSize = XLPaperSize.A4Paper
'印刷品質
'ws.PageSetup.VerticalDpi = 600
'ws.PageSetup.HorizontalDpi = 600
wb.SaveAs("D:\test\PageSetup1.xlsx")
用紙サイズの一覧についてはこちらを参照してください:GitHub – ClosedXML – Paper Size Lookup Table
ページタブ設定例(2)
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("ページ設定2")
'印刷の向き
ws.PageSetup.PageOrientation = XLPageOrientation.Portrait
'次のページ数に合わせて印刷
ws.PageSetup.FitToPages(2, 2)
'ws.PageSetup.PagesTall = 3
'ws.PageSetup.PagesWide = 3
'用紙サイズ
ws.PageSetup.PaperSize = XLPaperSize.B4Paper
'印刷品質
'ws.PageSetup.VerticalDpi = 600
'ws.PageSetup.HorizontalDpi = 600
'先頭ページ番号
ws.PageSetup.FirstPageNumber = 5
wb.SaveAs("D:\test\PageSetup2.xlsx")
用紙サイズの一覧についてはこちらを参照してください:GitHub – ClosedXML – Paper Size Lookup Table
余白タブ
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("余白")
ws.PageSetup.Margins.Top = cm2inch(1)
ws.PageSetup.Margins.Bottom = cm2inch(1.5)
ws.PageSetup.Margins.Left = cm2inch(0.5)
ws.PageSetup.Margins.Right = cm2inch(0.5)
ws.PageSetup.Margins.Footer = cm2inch(1)
ws.PageSetup.Margins.Header = cm2inch(1)
ws.PageSetup.CenterHorizontally = True
ws.PageSetup.CenterVertically = True
wb.SaveAs("D:\test\Margins.xlsx")
余白をコードで設定する場合、単位はインチで設定する必要があるため、下記の cm2inch 関数を使用しています。
Private Function cm2inch(cm As Single) As Single
Return cm / 2.54
End Function
MEMO
日本語版の Excel の場合、余白タブで使用されている数値の単位は(デフォルトでは)cm です。
この単位は OS の設定が反映されたものです。従って単位を(変えたいと思う場合は)(OS の設定を変えることで)変更することも可能だそうです。
ヘッダー/フッタータブ
テキストの追加
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("ヘッダー・フッター1")
'すべてのページに表示されるテキスト(左側のヘッダー)
ws.PageSetup.Header.Left.AddText("ClosedXML で設定")
'複数の種類の装飾を異なる方法で設定(右側のヘッダー、先頭ページのみ)
'テキストの追加と同時に単一の装飾を行う
ws.PageSetup.Header.Right.AddText("最初", XLHFOccurrence.FirstPage).SetBold
ws.PageSetup.Header.Right.AddText("の", XLHFOccurrence.FirstPage).SetFontColor(XLColor.Red)
'AddText(...) メソッドで返される IXLRichText を使用して、後から装飾を行う
Dim richText = ws.PageSetup.Header.Right.AddText("カラフルな", XLHFOccurrence.FirstPage)
richText.FontColor = XLColor.Blue
richText.Underline = XLFontUnderlineValues.Double
'複数の装飾を一度に行う
ws.PageSetup.Header.Right.AddText("右ヘッダー", XLHFOccurrence.FirstPage) _
.SetBold _
.SetItalic _
.SetFontName("HG行書体")
'[先頭ページのみ別指定]
ws.PageSetup.SetDifferentFirstPageOnHF(True)
'ws.PageSetup.DifferentFirstPageOnHF = True
wb.SaveAs("D:\test\HeadersFooters1.xlsx")
定義済みヘッダー/フッターテキストの追加
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("ヘッダー・フッター2")
'現在のページ番号と合計ページ数をすべてのページのフッターに挿入
ws.PageSetup.Footer.Center.AddText(XLHFPredefinedText.PageNumber, XLHFOccurrence.AllPages)
ws.PageSetup.Footer.Center.AddText(" / ", XLHFOccurrence.AllPages)
ws.PageSetup.Footer.Center.AddText(XLHFPredefinedText.NumberOfPages, XLHFOccurrence.AllPages)
'奇数ページの右側のフッターにファイルのフルパスを挿入
ws.PageSetup.Footer.Right.AddText(XLHFPredefinedText.FullPath, XLHFOccurrence.OddPages)
'[奇数/偶数ページ別指定]
ws.PageSetup.SetDifferentOddEvenPagesOnHF(True)
'ws.PageSetup.DifferentOddEvenPagesOnHF = True
wb.SaveAs("D:\test\HeadersFooters2.xlsx")
ヘッダー/フッタータブのチェックボックスのオン/オフ
'[奇数/偶数ページ別指定] ws.PageSetup.SetDifferentOddEvenPagesOnHF(True) 'ws.PageSetup.DifferentOddEvenPagesOnHF = True '[先頭ページのみ別指定] ws.PageSetup.SetDifferentFirstPageOnHF(True) 'ws.PageSetup.DifferentFirstPageOnHF = True '[ドキュメントに合わせて拡大/縮小] ws.PageSetup.ScaleHFWithDocument = False 'ws.PageSetup.SetScaleHFWithDocument(False) '[ページ余白に合わせて配置] ws.PageSetup.AlignHFWithMargins = False 'ws.PageSetup.SetAlignHFWithMargins(False)
シートタブ
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("シートタブ")
'印刷範囲
ws.PageSetup.PrintAreas.Add("A1:B2")
ws.PageSetup.PrintAreas.Add("D3:D5")
'タイトル行
ws.PageSetup.SetRowsToRepeatAtTop(1, 2)
'タイトル列
ws.PageSetup.SetColumnsToRepeatAtLeft(1, 2)
'枠線
ws.PageSetup.ShowGridlines = True
'白黒印刷
ws.PageSetup.BlackAndWhite = True
'簡易印刷
ws.PageSetup.DraftQuality = True
'行列番号
ws.PageSetup.ShowRowAndColumnHeadings = True
'コメントをシートの末尾に表示
ws.PageSetup.ShowComments = XLShowCommentsValues.AtEnd
'セルのエラーを #N/A に設定
ws.PageSetup.PrintErrorValue = XLPrintErrorValues.NA
'[ページの方向]を[上から下へ]に設定
ws.PageSetup.PageOrder = XLPageOrderValues.OverThenDown
wb.SaveAs("D:\test\SheetTab.xlsx")
印刷範囲と改ページ
離れた印刷範囲
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("離れた印刷範囲")
ws.PageSetup.PrintAreas.Add("A1:C3")
ws.PageSetup.PrintAreas.Add("E3:G10")
wb.SaveAs("D:\test\PrintAreas.xlsx")
Excel 上部メニューの[表示]>[改ページプレビュー]で下図の画面を確認できます。
改ページ
Dim wb = New XLWorkbook
Dim ws = wb.Worksheets.Add("改ページ")
'印刷範囲を設定
ws.PageSetup.PrintAreas.Add("A1:G7")
'改ページを設定
ws.PageSetup.AddHorizontalPageBreak(3)
ws.PageSetup.AddVerticalPageBreak(4)
wb.SaveAs("D:\test\PageBreaks.xlsx")
Excel 上部メニューの[表示]>[改ページプレビュー]で下図の画面を確認できます。










