Excel VBAの覚え書([ページ レイアウト](PageSetupプロパティ)編)
■WorksheetオブジェクトのPageSetupプロパティ
ページ・レイアウトに関する処理を行う場合、PageSetupオブジェクトのプロパティを使用します。
PageSetupオブジェクトは、WorksheetオブジェクトのPageSetupプロパティで取得します。
PageSetupプロパティの詳細
Microsoftのサイトで「PageSetupプロパティ」を調べると、以下のように記載されています。
- 指定したオブジェクトのすべてのページセットアップ設定を含むPageSetupオブジェクトを返します。
また、オブジェクト・ブラウザでPageSetupプロパティを参照すると以下のように定義されており、何も引数を指定することなく、PageSetupオブジェクトを取得できることがわかります。
- Property PageSetup As PageSetup
■PageSetupオブジェクトの詳細
PageSetupオブジェクトのプロパティは下表の通りです(メソッドはありません)。
(PageSetupオブジェクトのプロパティ)
AlignMarginsHeaderFooterプロパティ | |||||||||||
説明 | ヘッダーとフッターを余白に合せて配置するかどうかを設定/取得 (Trueの場合、余白に合せて配置) |
||||||||||
定義 | Property AlignMarginsHeaderFooter() As Boolean | ||||||||||
Applicationプロパティ(読み取り専用) | |||||||||||
説明 | Applicationオブジェクト(Excel)を取得 | ||||||||||
定義 | Property Application() As Application | ||||||||||
BlackAndWhiteプロパティ | |||||||||||
説明 | 文書の要素が白黒で印刷されるかどうかを設定/取得 (Trueの場合、白黒印刷) |
||||||||||
定義 | Property BlackAndWhite() As Boolean | ||||||||||
BottomMarginプロパティ | |||||||||||
説明 | 下余白の値をポイントで設定/取得 | ||||||||||
定義 | Property BottomMargin() As Double | ||||||||||
CenterFooterプロパティ | |||||||||||
説明 | フッター中央の文字列を設定/取得 | ||||||||||
定義 | Property CenterFooter() As String | ||||||||||
CenterFooterPictureプロパティ(読み取り専用) | |||||||||||
説明 | フッター中央の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property CenterFooterPicture() As Graphic | ||||||||||
CenterHeaderプロパティ | |||||||||||
説明 | ヘッダー中央の文字列を設定/取得 | ||||||||||
定義 | Property CenterHeader() As String | ||||||||||
CenterHeaderPictureプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー中央の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property CenterHeaderPicture() As Graphic | ||||||||||
CenterHorizontallyプロパティ | |||||||||||
説明 | 印刷位置を水平方向の中央に設定するかどうかを設定/取得 (Trueの場合、中央に設定) |
||||||||||
定義 | Property CenterHorizontally() As Boolean | ||||||||||
CenterVerticallyプロパティ | |||||||||||
説明 | 印刷位置を垂直方向の中央に設定するかどうかを設定/取得 (Trueの場合、中央に設定) |
||||||||||
定義 | Property CenterVertically() As Boolean | ||||||||||
Creatorプロパティ(読み取り専用) | |||||||||||
説明 | オブジェクトを作成したアプリケーションの整数値を取得 (※)XlCreator列挙体は、以下の値のみ。 xlCreatorCode(1480803660):Macintosh版Excelでのシグネチャ |
||||||||||
定義 | Property Creator() As XlCreator | ||||||||||
DifferentFirstPageHeaderFooterプロパティ | |||||||||||
説明 | 先頭ページに別のヘッダー/フッターを使用するかどうかを設定/取得 (Trueの場合、別のヘッダー/フッターを使用) |
||||||||||
定義 | Property DifferentFirstPageHeaderFooter() As Boolean | ||||||||||
Draftプロパティ | |||||||||||
説明 | グラフィックスなしでシートを印刷するかどうかを設定/取得 (Trueの場合、グラフィックスなしで印刷) |
||||||||||
定義 | Property Draft() As Boolean | ||||||||||
EvenPageプロパティ(読み取り専用) | |||||||||||
説明 | 偶数ページのPageオブジェクトを取得 | ||||||||||
定義 | Property EvenPage() As Page | ||||||||||
FirstPageプロパティ(読み取り専用) | |||||||||||
説明 | 先頭ページのPageオブジェクトを取得 | ||||||||||
定義 | Property FirstPage() As Page | ||||||||||
FirstPageNumberプロパティ | |||||||||||
説明 | 印刷時に使用される最初のページ番号を設定/取得
(※)xlAutomatic(-4105)の場合、自動設定(既定値)。 |
||||||||||
定義 | Property FirstPageNumber() As Long | ||||||||||
FitToPagesTallプロパティ | |||||||||||
説明 | 印刷時に拡大縮小する縦方向のページ数を設定/取得 | ||||||||||
定義 | Property FitToPagesTall() As Variant | ||||||||||
FitToPagesWideプロパティ | |||||||||||
説明 | 印刷時に拡大縮小する横方向のページ数を設定/取得 | ||||||||||
定義 | Property FitToPagesWide() As Variant | ||||||||||
FooterMarginプロパティ | |||||||||||
説明 | フッター余白の値をポイントで設定/取得 | ||||||||||
定義 | Property FooterMargin() As Double | ||||||||||
HeaderMarginプロパティ | |||||||||||
説明 | ヘッダー余白の値をポイントで設定/取得 | ||||||||||
定義 | Property HeaderMargin() As Double | ||||||||||
LeftFooterプロパティ | |||||||||||
説明 | フッター左の文字列を設定/取得 | ||||||||||
定義 | Property LeftFooter() As String | ||||||||||
LeftFooterPictureプロパティ(読み取り専用) | |||||||||||
説明 | フッター左の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property LeftFooterPicture() As Graphic | ||||||||||
LeftHeaderプロパティ | |||||||||||
説明 | ヘッダー左の文字列を設定/取得 | ||||||||||
定義 | Property LeftHeader() As String | ||||||||||
LeftHeaderPictureプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー左の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property LeftHeaderPicture() As Graphic | ||||||||||
LeftMarginプロパティ | |||||||||||
説明 | 左余白の値をポイントで設定/取得 | ||||||||||
定義 | Property LeftMargin() As Double | ||||||||||
OddAndEvenPagesHeaderFooterプロパティ | |||||||||||
説明 | 奇数ページと偶数ページに別のヘッダー/フッターを使用するかどうかを設定/取得 (Trueの場合、別のヘッダー/フッターを使用) |
||||||||||
定義 | Property OddAndEvenPagesHeaderFooter() As Boolean | ||||||||||
Orderプロパティ | |||||||||||
説明 | [ページの方向]を設定/取得
(※)XlOrder列挙体は、以下の通り。 |
||||||||||
定義 | Property Order() As XlOrder | ||||||||||
Orientationプロパティ | |||||||||||
説明 | [印刷の向き]を設定/取得
(※)XlPageOrientation列挙体は、以下の通り。 |
||||||||||
定義 | Property Orientation() As XlPageOrientation | ||||||||||
Pagesプロパティ(読み取り専用) | |||||||||||
説明 | Pagesコレクションを取得
(※)PagesコレクションおよびPageオブジェクトは、Workbook内のPageを表すオブジェクト。 |
||||||||||
定義 | Property Pages() As Pages | ||||||||||
PaperSizeプロパティ | |||||||||||
説明 | 用紙のサイズを設定/取得
(※)XlPaperSize列挙体の主な定数は、以下の通り。 |
||||||||||
定義 | Property PaperSize() As XlPaperSize | ||||||||||
Parentプロパティ(読み取り専用) | |||||||||||
説明 | 指定されたオブジェクトの親オブジェクトを取得 | ||||||||||
定義 | Property Parent() As Object | ||||||||||
PrintAreaプロパティ | |||||||||||
説明 | [印刷範囲]を設定/取得 | ||||||||||
定義 | Property PrintArea() As String | ||||||||||
PrintCommentsプロパティ | |||||||||||
説明 | コメントを印刷する方法を設定/取得
(※)XlPrintLocation列挙体は、以下の通り。 |
||||||||||
定義 | Property PrintComments() As XlPrintLocation | ||||||||||
PrintErrorsプロパティ | |||||||||||
説明 | 印刷エラーの取扱い方法を設定/取得
(※)XlPrintErrors列挙体は、以下の通り。 |
||||||||||
定義 | Property PrintErrors() As XlPrintErrors | ||||||||||
PrintGridlinesプロパティ | |||||||||||
説明 | セルの枠線を印刷するかどうかを設定/取得 (Trueの場合、枠線を印刷) |
||||||||||
定義 | Property PrintGridlines() As Boolean | ||||||||||
PrintHeadingsプロパティ | |||||||||||
説明 | 行番号・列番号を印刷するかどうかを設定/取得 (Trueの場合、行番号・列番号を印刷) |
||||||||||
定義 | Property PrintHeadings() As Boolean | ||||||||||
PrintNotesプロパティ | |||||||||||
説明 | コメントを印刷するかどうかを設定/取得 (Trueの場合、コメントを[シートの末尾]に印刷) |
||||||||||
定義 | Property PrintNotes() As Boolean | ||||||||||
PrintQualityプロパティ | |||||||||||
説明 | [印刷品質]を設定/取得 | ||||||||||
定義 | Property PrintQuality(Index As Variant) As Variant | ||||||||||
PrintTitleColumnsプロパティ | |||||||||||
説明 | [タイトル列]を設定/取得 | ||||||||||
定義 | Property PrintTitleColumns() As String | ||||||||||
PrintTitleRowsプロパティ | |||||||||||
説明 | [タイトル行]を設定/取得 | ||||||||||
定義 | Property PrintTitleRows() As String | ||||||||||
RightFooterプロパティ | |||||||||||
説明 | フッター右の文字列を設定/取得 | ||||||||||
定義 | Property RightFooter() As String | ||||||||||
RightFooterPictureプロパティ(読み取り専用) | |||||||||||
説明 | フッター右の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property RightFooterPicture() As Graphic | ||||||||||
RightHeaderプロパティ | |||||||||||
説明 | ヘッダー右の文字列を設定/取得 | ||||||||||
定義 | Property RightHeader() As String | ||||||||||
RightHeaderPictureプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー右の画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property RightHeaderPicture() As Graphic | ||||||||||
RightMarginプロパティ | |||||||||||
説明 | 右余白の値をポイントで設定/取得 | ||||||||||
定義 | Property RightMargin() As Double | ||||||||||
ScaleWithDocHeaderFooterプロパティ | |||||||||||
説明 | 文書に合せてヘッダー/フッターを拡大・縮小するかどうかを設定/取得 (Trueの場合、文書に合せて拡大・縮小) |
||||||||||
定義 | Property ScaleWithDocHeaderFooter() As Boolean | ||||||||||
TopMarginプロパティ | |||||||||||
説明 | 上余白の値をポイントで設定/取得 | ||||||||||
定義 | Property TopMargin() As Double | ||||||||||
Zoomプロパティ | |||||||||||
説明 | 拡大率または縮小率(%)を設定/取得 (設定可能な値は、10~400) |
||||||||||
定義 | Property Zoom() As Variant |
■Pagesコレクション、Pageオブジェクト、HeaderFooterオブジェクトの詳細
PagesコレクションおよびPageオブジェクトは、ブック内のページを表すオブジェクトで、PegeSetupオブジェクトのPagesプロパティで取得可能です。
Pageオブジェクトには、ヘッダー(左、中央、右)とフッター(左、中央、右)に対応するプロパティが用意されており、いずれもHeaderFooterオブジェクトを取得可能です。
Pagesコレクション、Pageオブジェクト、HeaderFooterオブジェクトのメソッドおよびプロパティは下表の通りです。
(Pagesコレクションのメソッドおよびプロパティ)
Countプロパティ(読み取り専用) | |||||||||||
説明 | Pageオブジェクトの数を取得 | ||||||||||
定義 | Property Count As Long | ||||||||||
Itemメソッド | |||||||||||
説明 | Pagesコレクションから指定したPageオブジェクトを取り出す | ||||||||||
定義 | Function Item(Index) As Page |
(Pageオブジェクトのプロパティ)
CenterFooterプロパティ(読み取り専用) | |||||||||||
説明 | フッター中央を取得 | ||||||||||
定義 | Property CenterFooter As HeaderFooter | ||||||||||
CenterHeaderプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー中央を取得 | ||||||||||
定義 | Property CenterHeader As HeaderFooter | ||||||||||
LeftFooterプロパティ(読み取り専用) | |||||||||||
説明 | フッター左を取得 | ||||||||||
定義 | Property LeftFooter As HeaderFooter | ||||||||||
LeftHeaderプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー左を取得 | ||||||||||
定義 | Property LeftHeader As HeaderFooter | ||||||||||
RightFooterプロパティ(読み取り専用) | |||||||||||
説明 | フッター右を取得 | ||||||||||
定義 | Property RightFooter As HeaderFooter | ||||||||||
RightHeaderプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー右を取得 | ||||||||||
定義 | Property RightHeader As HeaderFooter |
(HeaderFooterオブジェクトのプロパティ)
Pictureプロパティ(読み取り専用) | |||||||||||
説明 | ヘッダー/フッターの画像を表すGraphicオブジェクトを取得 | ||||||||||
定義 | Property Picture As Graphic | ||||||||||
Textプロパティ | |||||||||||
説明 | ヘッダー/フッターのテキストを設定/取得 | ||||||||||
定義 | Property Text As String |
■行追加に合せて、印刷範囲を縦方向に延ばす処理
「印刷範囲を設定したワークシートに行を追加し、追加した行の分だけ印刷範囲を縦方向に延ばしたい」と思ったことがあり、意外と苦労した経験があるので、サンプル・プログラムを掲載しておきます。
(処理概要)
予め印刷範囲が設定されたシートに別のシートから行単位でデータをコピーし、追加された行の分だけ印刷範囲を縦方向に拡張する処理ですが、プログラムを簡単にするため、1つのブックの中で1シート目から2シート目にコピーするだけにしてあります。
(サンプル・プログラム)
行番号9で出力先シートの最終行を行カウンタにセットし、行番号10~14の繰返し処理で1シート目から2シート目に行単位でコピーし、行番号15~17で印刷範囲を再設定しています。
PageSetupオブジェクトのPrintAreaプロパティには、印刷範囲として設定されている範囲がA1参照形式の文字列(例えば、「A1:H20」のような値)が返って来ますので、行番号15でその値を指定してRangeオブジェクトを取得(この例であれば、「Range(“A1:H20")」のように指定)し、行番号16でRangeオブジェクトのResizeメソッドでRangeオブジェクトの範囲を変更した後、行番号17で印刷範囲を設定し直しています。
(設定したい印刷範囲がわかっているのであれば、単に「sht2.PageSetup.PrintArea = “A1:H30″」のように設定するだけで大丈夫です)
- Dim sht1, sht2 As Object
- Dim rng As Range
- Dim rcnt As Long
- Dim i As Integer
- Private Sub Sample1()
- Set sht1 = ActiveSheet
- Set sht2 = Worksheets(2)
- rcnt = sht2.Cells(sht2.Rows.Count, 1).End(xlUp).Row
- For i = 1 To sht1.Cells(sht1.Rows.Count, 1).End(xlUp).Row
- sht1.Rows(i).Copy
- rcnt = rcnt + 1
- sht2.Rows(rcnt).PasteSpecial (xlPasteAll)
- Next i
- Set rng = sht2.Range(sht2.PageSetup.PrintArea)
- Set rng = rng.Resize(RowSize:=rcnt)
- sht2.PageSetup.PrintArea = rng.Address
- End Sub
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ
ディスカッション
コメント一覧
まだ、コメントがありません