ぺージ設定
ページ設定ダイアログは 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 上部メニューの[表示]>[改ページプレビュー]で下図の画面を確認できます。