基本的な印刷についてはPrintOutおよびPrintPreviewの記事で解説しましたが、もう少しつっこんだ印刷設定もまとめて行いたい場合、PageSetupオブジェクトを使い、印刷の「ページ設定」をVBAであらかじめ設定しておくことができます。
- ページ設定とは(PageSetupオブジェクト)
- ページタブの設定
- 余白タブの設定
- ヘッダー/フッタータブの設定
- 左のヘッダー(LeftHeader)
- 右のヘッダー(RightHeader)
- 中央のヘッダー(CenterHeader)
- 左、中央、右フッター(LeftFooter、CenterFooter、RightFooter)
- ヘッダー、フッターに画像を表示(Graphicオブジェクト.Filename)
- 画像の高さ、幅を変更(Height、Width)
- 最初のページだけ別のヘッダー/フッター(DifferentFirstPageHeaderFooter)
- 偶数/奇数ページで別のヘッダー/フッター(OddAndEvenPagesHeaderFooter)
- シートの拡大率に合わせてヘッダー/フッターも拡大/縮小(ScaleWithDocHeaderFooter)
- シートの余白に合わせてヘッダー/フッターの左右の位置も調整(AlignMarginsHeaderFooter)
- シートタブの設定
ページ設定とは(PageSetupオブジェクト)
Excel上で操作する場合、ページレイアウトタブ→「ページ設定」右下をクリックすると、
ページ設定ダイアログが開きます。縦横や余白など、印刷にまつわるさまざまな設定の変更が可能です。
PageSetupオブジェクトを操作することで、このダイアログにある内容を色々変更することができます。
PageSetupオブジェクトを操作することで、このダイアログにある内容を色々変更することができます。
' vba
ActiveSheet.PageSetup
PageSetupオブジェクトの取得は、WorkSheetオブジェクト、ChartオブジェクトなどにPageSetupプロパティをくっつけます。
ページタブの設定
ページ設定には「ページ」「余白」「ヘッダー/フッター」「シート」のよっつのタブがあります。
ページタブでは拡大率、用紙サイズなど、基本的かつよく使う設定を変更することができます。
ページタブでは拡大率、用紙サイズなど、基本的かつよく使う設定を変更することができます。
拡大/縮小(Zoom)
' vba
ActiveSheet.PageSetup.Zoom = 50
ActiveSheet.PrintPreview
PageSetupプロパティを付けたシートなど=PageSetupオブジェクトにはページ設定を変更する色々なプロパティが用意されています。
そのひとつ、Zoomプロパティを変更することで、印刷の拡大/縮小率を指定することができます。
値は10から400までで指定します。後ろに%を付けてもOKです。
そのひとつ、Zoomプロパティを変更することで、印刷の拡大/縮小率を指定することができます。
値は10から400までで指定します。後ろに%を付けてもOKです。
PrintPreviewでプレビュー表示し、設定を確認すると倍率が変更されていることが確認できます。
後述する別のプロパティと競合するので、Falseを指定して無効にすることもできます。
縦幅をページ数に合わせて印刷(FitToPagesTall)
' vba
ActiveSheet.PageSetup.Zoom = False
ActiveSheet.PageSetup. _
FitToPagesTall = 1
FitToPagesTallに任意の数値を指定すると、縦幅が指定した数値分のページに収まる形で印刷されます。
ZoomをFalseにしてる理由については後述。
ZoomをFalseにしてる理由については後述。
たとえば何もしないと複数ページにまたがるこれに、
FitToPagesTall = 1を指定してやれば、縦が1ページに収まる形で自動縮小されます。
FitToPagesTallを使う時は、Zoomが指定されているとそちらが優先されてしまうので、
ZoomをFalseにする必要があります。
FitToPagesTallでは、縦の長さがページをまたぐ場合は縮小しますが、逆に縦の長さより短い場合にぴったり収まるような拡大はされません。縮小のみ行われます。
横幅をページ数に合わせて印刷(FitToPagesWide)
' vba
ActiveSheet.PageSetup.Zoom = False
ActiveSheet.PageSetup. _
FitToPagesWide = 1
同様に、FitToPagesWideを指定すると横幅を収めるページ数を指定できます。
こちらもZoomをFalseにする必要があります。
こちらもZoomをFalseにする必要があります。
実行するとこんな感じになります。
用紙サイズの指定(PaperSize)
' vba
ActiveSheet.PageSetup. _
PaperSize = xlPaperA5
PaperSizeプロパティにXlPaperSize列挙型定数(または数値)で値を指定することで、用紙サイズを指定することができます。
実行するとちゃんと用紙サイズが変更されてます。
定数はA4ならxlPaperA4のように後ろを変えるだけでOKなんですが、
定数はA4ならxlPaperA4のように後ろを変えるだけでOKなんですが、
たとえばA3が出力できないプリンタに、
xlPaperA3を指定するとエラーになります。あらかじめ使えるサイズを把握しておく必要があります。
定数の代わりに数値で指定する場合、A4なら9、A3なら8、A5が11、B4が12、B5が13です。
縦横の指定(Orientation)
' vba
ActiveSheet.PageSetup. _
Orientation = xlPortrait
OrientationプロパティにXlPageOrientation列挙型定数を指定することで、用紙を縦横どちらで印刷するかを指定することができます。
xlPortraitで縦に印刷、
xlLandscapeで横に印刷となります。
印刷品質(PrintQuality)
' vba
ActiveSheet.PageSetup. _
PrintQuality = -3
PrintQualityに任意の値を指定することで、印刷品質を選択することができます。
これもプリンタによって色々ですが、たとえば-3を指定すると、
これもプリンタによって色々ですが、たとえば-3を指定すると、
使用するプリンタの印刷品質一覧のうち下から3番目の印刷品質が選択されます。
-付けないとエラーになります。なんで下からなのかは知りません。
-付けないとエラーになります。なんで下からなのかは知りません。
-4だと下から4番目です。
一覧の総数より大きな数を指定したり、”標準印刷(高品質)”のように名前で指定するとエラーになります。
dpiで指定できるプリンタの場合は、PrintQuality = 600のように半角数字で指定することができます。
' vba
ActiveSheet.PageSetup. _
PrintQuality = Array(300, 150)
水平/垂直ごとに品質を指定できるプリンターの場合、配列で個別に指定することもできます。
この場合水平が300dpi、垂直が150dpiとなります。
この場合水平が300dpi、垂直が150dpiとなります。
先頭ページ番号の変更(FirstPageNumber)
通常印刷した用紙にページ番号(ノンブル)をふると1からスタートしますが、先頭ページ番号を変更することにより、
印刷されるページ番号を変更することが可能です。今はヘッダーに出してますが、フッターに表示することも可能です。
※ページ番号を印刷に表示するには、別途ヘッダー/フッターでの操作が必要となります。
※ページ番号を印刷に表示するには、別途ヘッダー/フッターでの操作が必要となります。
' vba
ActiveSheet.PageSetup. _
FirstPageNumber = xlAutomatic
デフォルトの先頭ページ番号は「自動」です。
自動にしたい場合は、FirstPageNumberにxlAutomaticを指定します。
自動にしたい場合は、FirstPageNumberにxlAutomaticを指定します。
数値の指定は半角数字で行います。
0にした場合、2枚目が1ページになります。
0にした場合、2枚目が1ページになります。
余白タブの設定
上余白の設定(TopMargin)
PageSetupの各種プロパティを指定することで、余白タブの余白を変更することができます。
ここで表示されている余白の数値はcmです。
ここで表示されている余白の数値はcmです。
' vba
ActiveSheet.PageSetup. _
TopMargin = 2
上側の余白を変更または取得するには、TopMarginプロパティを指定しますが、
TopMarginで半角数字を指定すると、ポイントという単位で指定していることになります。
詳しい説明は割愛しますが、1ポイント=0.035cmとなり、0.1cmとして設定されています。
詳しい説明は割愛しますが、1ポイント=0.035cmとなり、0.1cmとして設定されています。
' vba
ActiveSheet.PageSetup. _
TopMargin = Application.CentimetersToPoints(2)
cmで値を指定したいので、値をApplication.CentimetersToPoints(2)のように変更します。
CentimetersToPointsはcmをポイント単位に変換するメソッドで、こうすることによって値に「2cm相当のポイント」を指定していることになります。
CentimetersToPointsはcmをポイント単位に変換するメソッドで、こうすることによって値に「2cm相当のポイント」を指定していることになります。
上のコードを実行すると、指定した値が入力されていることが確認できます。
下余白の設定(BottomMargin)
' vba
ActiveSheet.PageSetup. _
BottomMargin = Application.CentimetersToPoints(2)
TopMarginと同じ要領で、下の余白も設定ないしは取得することができます。
使用するプロパティはBottomMarginです。
使用するプロパティはBottomMarginです。
実行結果です。
左右の余白の設定(LeftMargin、RightMargin)
' vba
ActiveSheet.PageSetup. _
LeftMargin = Application.CentimetersToPoints(2)
ActiveSheet.PageSetup. _
RightMargin = Application.CentimetersToPoints(2)
LeftMarginで左、RightMarginで右の余白を設定できます。
あとはTop、Bottomと同じです。
あとはTop、Bottomと同じです。
ヘッダー・フッターの余白の設定(HeaderMargin、FooterMargin)
' vba
ActiveSheet.PageSetup. _
HeaderMargin = Application.CentimetersToPoints(2)
ActiveSheet.PageSetup. _
FooterMargin = Application.CentimetersToPoints(2)
紙の端からHeaderMarginでヘッダー、FooterMarginでフッターまでの余白を設定できます。あとは他のMargin同様です。
実行結果です。
水平方向中央に印刷(CenterHorizontally)
' vba
ActiveSheet.PageSetup. _
CenterHorizontally = True
印刷内容を水平方向中央に配置したい場合は、CenterHorizontallyプロパティにTrueを指定します。
Falseで無効にできます。
Falseで無効にできます。
実行すると、印刷内容が中央に寄っていることが確認できます。
垂直方向中央に印刷(CenterVertically)
' vba
ActiveSheet.PageSetup. _
CenterVertically = True
垂直方向中央に配置したい場合は、CenterVerticallyプロパティにTrueを指定します。
Falseで無効にできます。
Falseで無効にできます。
実行結果です。
CenterHorizontallyとCenterVerticallyがどちらもTrueの場合、印刷内容は用紙中央に配置されます。
ヘッダー/フッタータブの設定
左のヘッダー(LeftHeader)
続いてヘッダー/フッタータブの設定となります。
' vba
ActiveSheet.PageSetup. _
LeftHeader = "&D"
ヘッダー/フッターにはよく使うものが色々コードで用意されていて、たとえばLeftHeaderプロパティの値に“&D”を指定してやると……。
左上のヘッダーに今日の日付が表示されます。””で囲う必要がある点に注意してください。
“&D &T”とすると、今日の日付 今の時間が表示されます。
直接文字を入力することもできます。&の後ろに所定の文字を付けた場合だけ変換されます。
あまり融通はきかず、たとえば&D+1とかを指定しても、明日の日付ではなく(今日の日付)+1という形で表示されます。
あまり融通はきかず、たとえば&D+1とかを指定しても、明日の日付ではなく(今日の日付)+1という形で表示されます。
右のヘッダー(RightHeader)
' vba
ActiveSheet.PageSetup. _
RightHeader = "&P/&N"
RightHeaderには、“&P/&N”を指定してみます。
&Pが現在のページ数、&Nが全体のページ数を意味します。
&Pが現在のページ数、&Nが全体のページ数を意味します。
実行結果です。
中央のヘッダー(CenterHeader)
' vba
ActiveSheet.PageSetup. _
CenterHeader = "&F"
次にCenterHeaderプロパティで中央上部のヘッダーを設定してみます。
“&F”はファイル名を意味します。他にも“&A”でシート名、“&Z”でファイルパスを表示させることもできます。
“&F”はファイル名を意味します。他にも“&A”でシート名、“&Z”でファイルパスを表示させることもできます。
実行結果です。
左、中央、右フッター(LeftFooter、CenterFooter、RightFooter)
' vba
ActiveSheet.PageSetup. _
LeftFooter = "test"
ActiveSheet.PageSetup. _
CenterFooter = "test"
ActiveSheet.PageSetup. _
RightFooter = "test"
以下同様。LeftFooterで左、CenterFooterで中央、RightFooterで右のフッターの表示設定が行えます。
ヘッダー、フッターに画像を表示(Graphicオブジェクト.Filename)
ヘッダー、フッターに画像を挿入してみます。
今回はデスクトップに置いた画像を使用します。
今回はデスクトップに置いた画像を使用します。
画像のパスをプロパティなどから拾ってきます。
' vba
ActiveSheet.PageSetup. _
LeftFooterPicture.Filename = _
"C:\Users\User\Desktop\sg.jpg"
ActiveSheet.PageSetup. _
LeftFooter = "&G"
左のフッターの場合、まずLeftFooterPicture.Filenameプロパティに画像のパス名を指定し、その後でLeftFooterプロパティに“&G”を指定します。&G=画像です。
右ヘッダーならRightHeaderPicture.Filename→RightHeaderです。
たとえばLeftHeaderPicture.Filenameに画像のパスを指定して、LeftFooterに”&G”を指定しても画像は表示されません。対になっているか注意してください。
右ヘッダーならRightHeaderPicture.Filename→RightHeaderです。
たとえばLeftHeaderPicture.Filenameに画像のパスを指定して、LeftFooterに”&G”を指定しても画像は表示されません。対になっているか注意してください。
※厳密には、LeftFooterPictureを付けた時点でGraphicオブジェクトなるものを取得しています。FilenameはGraphicオブジェクトのプロパティです。
うまくいくと、こんな感じでヘッダー/フッターに画像が挿入されます。
画像の高さ、幅を変更(Height、Width)
' vba
With ActiveSheet.PageSetup.LeftFooterPicture
.Filename = "C:\Users\User\Desktop\sg.jpg"
.Height = 1
.Width = 150
End With
ActiveSheet.PageSetup. _
LeftFooter = "&G"
取得した画像(Graphicオブジェクト)に対して、Heightで高さ、Widthで幅を指定することができます。
縮尺は固定で、幅か高さの大きいほうの数字に合わせたサイズに拡大します(たとえば高さが1で幅が150の場合、高さも幅に合わせて大きくなります)。
縮尺は固定で、幅か高さの大きいほうの数字に合わせたサイズに拡大します(たとえば高さが1で幅が150の場合、高さも幅に合わせて大きくなります)。
つまりこうなります。
数字の単位はポイントなので、cmでしたい場合はApplication.CentimetersToPoints(数字)のように指定します。
数字の単位はポイントなので、cmでしたい場合はApplication.CentimetersToPoints(数字)のように指定します。
ヘッダー/フッターに「&」を入力する方法
' vba
ActiveSheet.PageSetup. _
CenterFooter = "&&"
以下同様。LeftFooterで左、CenterFooterで中央、コードの前には&を付けるので一見「&」を入力することはできなさそうですが、“&&”とすることで「&」を入力することも可能です。
実行結果です。
たとえば現在のページ&全体のページ数であれば、“&P&&&N”のように指定します。
たとえば現在のページ&全体のページ数であれば、“&P&&&N”のように指定します。
ヘッダー/フッターのフォントの変更
' vba
ActiveSheet.PageSetup. _
RightFooter = "&""MS 明朝""てすとtest"
フォントを変更する場合は、最初に”&”その次に”フォント名”を入力、その後に入力内容を記述します。
' vba
' これはダメ
ActiveSheet.PageSetup. _
RightFooter = "てすとtest""&""MS 明朝"
順不同ではありません。たとえば内容、&、フォント名のようにしても、フォントは変わりません。
' vba
ActiveSheet.PageSetup. _
RightFooter = "&""HGPゴシックE""てすとtest"
また、フォント名は正確に記述する必要があります。たとえばMS 明朝のアルファベットは全角でないと反映されません(間のスペースは半角/全角どちらでもいいようです)。ゴシックEであれば、カタカナ部分は半角で書く必要があります。
比較用にCenterFooterにも同じ文章を入力しました。
うまくいくとこんな感じで、フォントが変更されます。
うまくいくとこんな感じで、フォントが変更されます。
ヘッダー/フッターの文字サイズの変更
' vba
ActiveSheet.PageSetup. _
RightFooter = "&20てすとtest"
文字サイズは、サイズを変更したい内容の前に&数字を入力して指定します。
単位はポイントです。試した感じCentimetersToPointsは使えないようなので、もし意地でもcmで考えたい場合、1ポイント=約0.0353cm(1/72インチ)なので、1cm=約29ポイントと考えて自力で調節します。
単位はポイントです。試した感じCentimetersToPointsは使えないようなので、もし意地でもcmで考えたい場合、1ポイント=約0.0353cm(1/72インチ)なので、1cm=約29ポイントと考えて自力で調節します。
実行結果です。
フォントと併用も可能です。
数字を入力したい場合は、“&20 100”のようにして間を半角スペースで空ければ可能です。
ヘッダー/フッターの文字色変更
' vba
ActiveSheet.PageSetup. _
RightFooter = "&K34ebc6てすとtest"
文字色もサイズ同様、入力内容の前にくっつけます。
&Kの後に16進数で指定します。
&Kの後に16進数で指定します。
実行結果です。
組み合わせも可能です。たとえば文字サイズ20ポイントの色つけたページ番号であれば、“&20&K34ebc6&P”となります。
ヘッダー/フッターを右詰め/左詰め/中央に変更
' vba
ActiveSheet.PageSetup. _
RightFooter = "&C右フッター"
RightFooterを中央フッターに表示させたり、Centerheaderを左ヘッダーに表示させたりすることができます。&Lで左詰め、&Cで中央、&Rで右詰めとなります。
これがRightFooter = “右フッター”の状態で、
これがRightFooter = “&C右フッター”の状態です。RightFooterに指定した内容が中央フッターに表示され、元々あるCenterFooterといっしょくたに表示されています。
設定で確認すると「中央フッターに設定した」状態になってます。
なお、上画像から再度CenterFooter = “てすとtest”、RightFooter = “右フッター”を指定しても中央に右フッターが残り続けます。挙動的に怪しげなので、あまり使うことを推奨しません。
なお、上画像から再度CenterFooter = “てすとtest”、RightFooter = “右フッター”を指定しても中央に右フッターが残り続けます。挙動的に怪しげなので、あまり使うことを推奨しません。
斜体/太字/取り消し線/上付き文字/下付き文字
' vba
ActiveSheet.PageSetup. _
LeftFooter = "&Iてすとtest"
ActiveSheet.PageSetup. _
CenterFooter = "&Sてすとtest"
ActiveSheet.PageSetup. _
RightFooter = "&Bてすとtest"
ActiveSheet.PrintPreview
その他まとめて。&Iで斜体、&Bで太字、&Sで取り消し線、&Uで下線、&Eで二重下線、&Xで上付き文字、&Yで下付き文字が指定可能です。
左から斜体、取り消し線、太字、
指定なし、上付き文字、下付き文字です。
ヘッダー/フッターで使用可能なコードまとめ
VBAコード | 内容 |
---|---|
&D | 今日の日付 |
&T | 現在時刻 |
&P | ページ番号 |
&N | 総ページ数 |
&F | ファイル名 |
&A | シート名(見出し) |
&Z | ファイルパス |
&G | Graphicオブジェクトに設定した画像 |
&& | & |
文字コード | 内容 |
---|---|
“&””フォント名” | フォントの変更 |
&数字 | フォントサイズ |
&Kカラーコード(16進数) | 色変更 |
&L | 左詰め |
&C | 中央詰め |
&R | 右詰め |
&I | 斜体 |
&B | 太字 |
&S | 取り消し線 |
&U | 下線 |
&E | 二重下線 |
&X | 上付き文字 |
&Y | 下付き文字 |
最初のページだけ別のヘッダー/フッター(DifferentFirstPageHeaderFooter)
' vba
ActiveSheet.PageSetup. _
DifferentFirstPageHeaderFooter = True
最初のページだけちがうヘッダー/フッターを指定したい場合は、まずPageSetupオブジェクトのDifferentFirstPageHeaderFooterプロパティをTrueにします。
' vba
ActiveSheet.PageSetup. _
DifferentFirstPageHeaderFooter = True
ActiveSheet.PageSetup. _
FirstPage.CenterFooter.Text = "最初のページ"
最初のページに指定したいヘッダー/フッターにはPageSetupのあとにFirstPageを付け、その後に挿入箇所の指定、さらにTextを付けてあげます。
' vba
With ActiveSheet.PageSetup
.DifferentFirstPageHeaderFooter = True
.FirstPage.CenterFooter.Text = "最初のページ"
.CenterFooter = "2ページ目以降"
.RightFooter = "てすとtest"
End With
2ページ目以降も指定してみます。
1ページ目は中央フッターのみ、2ページ目は中央と右のフッターを指定。これで実行すると、
1ページ目は中央フッターのみ、2ページ目は中央と右のフッターを指定。これで実行すると、
1ページ目では指定したフッターのみ表示されます。
特に指定してない右フッターも表示されません。
特に指定してない右フッターも表示されません。
2ページ目以降では、通常通り指定したヘッダー/フッターが表示されます。
偶数/奇数ページで別のヘッダー/フッター(OddAndEvenPagesHeaderFooter)
' vba
With ActiveSheet.PageSetup
.OddAndEvenPagesHeaderFooter = True
.EvenPage.CenterFooter.Text = "偶数ページ"
.EvenPage.RightFooter.Text = "&P/&N"
.CenterFooter = "奇数ページ"
.RightFooter = "&P/&N"
End With
偶数・奇数でヘッダー/フッターの内容を切り替えたい場合は、まずPageSetupオブジェクトのOddAndEvenPagesHeaderFooterプロパティをTrueにし、Evenpage.指定したいヘッダー/フッター.textで偶数ページの内容、通常のヘッダー/フッター指定で奇数ページの内容を指定します。
実行結果です。ページ表示は偶数/奇数どちらも表示したいので、両方に指定しています。
偶数ページでは表示内容が変わります。
シートの拡大率に合わせてヘッダー/フッターも拡大/縮小(ScaleWithDocHeaderFooter)
' vba
ActiveSheet.PageSetup. _
ScaleWithDocHeaderFooter = True
ドキュメントの拡大率に合わせてヘッダー/フッターのサイズも変えたい場合は、ScaleWithDocHeaderFooterプロパティをTrueにします。
Excel画面上でいうこれです。
たとえば拡大率200%で印刷プレビューを表示した時、
Trueであればヘッダー/フッターの文字も拡大されますが、
Falseであれば100%換算のサイズで表示されます。
シートの余白に合わせてヘッダー/フッターの左右の位置も調整(AlignMarginsHeaderFooter)
' vba
ActiveSheet.PageSetup. _
AlignMarginsHeaderFooter = True
AlignMarginsHeaderFooterプロパティをTrueにすると、シートの余白に合わせてヘッダー/フッターの左右の位置も調整されます。
Excel画面上でいうこれです。
たとえばシートの余白の左右を思い切り広げた状態で、
AlignMarginsHeaderFooterをTrueにしてプレビューすると、ヘッダー/フッターの左右位置が余白に合わせられていることがわかります。
※上下位置は連動しません。
※上下位置は連動しません。
Falseにすると、連動が解除されることが確認できます。
シートタブの設定
印刷範囲の指定(PrintArea)
最後にシートタブの設定をしていきたいと思います。
印刷範囲の指定やタイトル行の指定などは資料作成で非常によく使う機能なので、VBAの学習価値も高くなります。
印刷範囲の指定やタイトル行の指定などは資料作成で非常によく使う機能なので、VBAの学習価値も高くなります。
まずは印刷範囲を指定してみたいと思います。
今回は表のうち、左側のA1からA7だけを印刷します。
今回は表のうち、左側のA1からA7だけを印刷します。
' vba
ActiveSheet.PageSetup. _
PrintArea = "A1:A7"
印刷範囲を指定するには、PrintAreaプロパティに範囲を入力すればOKです。
実行結果です。
複数の印刷範囲を指定
印刷範囲は,で区切ることで複数指定することも可能ですが、別々のページに印刷されます。
たとえばPrintAreaに“A1:A7,C1:C7”を指定した場合、
たとえばPrintAreaに“A1:A7,C1:C7”を指定した場合、
1ページにA1~A7、
2ページにC1~C7の内容が印刷されます。
タイトル行を指定(PrintTitleRows)
登場箇所より後ろの内容について、ページごとに毎回トップに印刷される行をタイトル行といいます。
今回は一行目だけをタイトル行に指定してみます。
今回は一行目だけをタイトル行に指定してみます。
' vba
ActiveSheet.PageSetup. _
PrintTitleRows = "$1:$1"
タイトル行の指定は、PrintTitleRowsプロパティに$(絶対参照)を付けた数字を範囲で指定します。
$1だけとか、1:1とかだと正しく動きません。
複数行を指定の場合は”$1:$2″のようにします。
$1だけとか、1:1とかだと正しく動きません。
複数行を指定の場合は”$1:$2″のようにします。
実行するとページごとに、
同じ行が最初の行として挿入されます。
タイトル列を指定(PrintTitleColumns)
' vba
ActiveSheet.PageSetup. _
PrintTitleColumns = "$A:$A"
列の場合は、PrintTitleColumnsプロパティに$を付けたアルファベットを範囲で指定します。
数字だと動きません。
数字だと動きません。
実行すると内容が右にはみ出した分毎回指定した列が付きます。
タイトル行と両方指定することも可能です。
タイトル行と両方指定することも可能です。
セルの枠線も印刷(PrintGridlines)
' vba
ActiveSheet.PageSetup. _
PrintGridlines = True
列の場合は、PrintGridlinesプロパティをTrueにすると、特に書式で枠線を指定していないセルでも、何か入力してある範囲に枠線を表示できます。
実行するとこういうビジュアルになります。
枠線を表示する範囲は一番下・一番右のデータを入力したセルまでをカバーする四角形になります。
枠線を表示する範囲は一番下・一番右のデータを入力したセルまでをカバーする四角形になります。
白黒印刷(BlackAndWhite)
' vba
ActiveSheet.PageSetup. _
BlackAndWhite = True
BlackAndWhiteプロパティをTrueにすることで、モノクロ印刷をすることができます。
逆にカラーにしたい場合は、BlackAndWhiteをFalseにします。
簡易印刷(Draft)
' vba
ActiveSheet.PageSetup. _
Draft = True
簡易印刷をONにするにはDraftプロパティをTrueにします。
簡易印刷では背景色やグラフは無視され、セルに入力されている内容だけが印刷されます。
簡易印刷では背景色やグラフは無視され、セルに入力されている内容だけが印刷されます。
行列番号印刷(PrintHeadings)
' vba
ActiveSheet.PageSetup. _
PrintHeadings = True
PrintHeadingsプロパティをTrueにすることで、行列番号を印刷することができます。
実行するとこんな感じになります。
行列番号と簡易印刷を同時に指定すると、なぜか列番号だけ印刷されます(バージョンによって挙動ちがうかも)。また枠線と同時指定すると枠線が表示されなかったりもします。
このへんの設定を同時に指定する場合、食い合わせは一回試してからコード書くことを薦めます。
このへんの設定を同時に指定する場合、食い合わせは一回試してからコード書くことを薦めます。
コメント印刷(PrintComments)
' vba
ActiveSheet.PageSetup. _
PrintComments = xlPrintNoComments
コメントを印刷したい場合、PrintCommentsプロパティにxlPrintLocation列挙型定数を割り振ります。
デフォルトはxlPrintNoCommentsで、プリントしない設定となります。
デフォルトはxlPrintNoCommentsで、プリントしない設定となります。
PrintCommentsにxlPrintSheetEndを指定すると、一番最後のシートにコメントだけまとめて印刷されます。
xlPrintInPlaceを指定した場合、表示設定になっているコメントだけが画面通りに印刷されます。
エラー印刷(PrintErrors)
エラーを印刷するかどうかは、PrintErrorsプロパティで設定できます。
' vba
ActiveSheet.PageSetup. _
PrintErrors = xlPrintErrorsDisplayed
PrintComments同様定数を指定します。こちらで使うのはxlPrintErrors列挙型定数となります。
デフォルトではxlPrintErrorsDisplayedとなっていますが、これは画面通りにエラーを印刷する設定です。
デフォルトではxlPrintErrorsDisplayedとなっていますが、これは画面通りにエラーを印刷する設定です。
xlPrintErrorsBlankにするとエラーのあるセルは空白となり、
xlPrintErrorsDashにすると、エラーのあるセルは-(ダッシュ)表示になります(律儀に-にも下線が引かれています)。
xlPrintErrorsNAを指定することで、エラーをすべて#N/A表記にすることもできます。
印刷方向(Order)
' vba
ActiveSheet.PageSetup. _
Order = xlDownThenOver
最後にOrderプロパティで印刷の方向を指定します。
値がxlDownThenOverの場合、下方向のページを全て印刷してから、右にはみ出している分のページを印刷します。
左から右に進んでいく印刷方法です。
値がxlDownThenOverの場合、下方向のページを全て印刷してから、右にはみ出している分のページを印刷します。
左から右に進んでいく印刷方法です。
' vba
ActiveSheet.PageSetup. _
Order = xlOverThenDown
xlOverThenDownの場合、右方向のページを全て印刷してから、下にあるページを印刷します。
上から下に進んでいく印刷方法です。
ちなみに、このふたつの値をまとめてxlOrder列挙型定数といいます。
上から下に進んでいく印刷方法です。
ちなみに、このふたつの値をまとめてxlOrder列挙型定数といいます。
Excel(エクセル):印刷、ヘッダーとフッター
Excelにおける印刷操作関連まとめです。
印刷方法
印刷を実行するには、印刷したいシートを選択した状態で①ファイルをクリックし、
さらに印刷をクリックするか、
印刷
Ctrl+P
②ショートカットを押します...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント