PR

【VBA】行・列タイトルを取得し設定する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
印刷対象のデータ数が多くて複数ページに跨るような場合、各ページに設定しておくと便利なのがタイトルなのですが、VBAでもPrintTitleRows/PrintTitleColumnsプロパティを使用することで設定できますので、今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

サンプルとして6ページに跨る簡易的な表を作成しています。

この状態で印刷プレビューを行うと当然ながら2ページ目以降はタイトル部分がありませんので判り難い形になります。

≪1ページ目≫

≪2ページ目以降≫

このシートに対し、PrintTitleRows/PrintTitleColumnsプロパティを使用しセル1行目A列をタイトルとすることで全てのページに印刷することができます。また、設定したタイトルを非表示にすることも可能です。

≪タイトル設定後の2ページ目以降≫

実際の動作は下の動画の通りになります。

以上がサンプル概要になります。

2.サンプルコード

◆行タイトル・列タイトルの設定

Sub Sample1()

  MsgBox "行・列タイトルを設定します"

  'ワークシート「Sheet1」に対する処理
  With Worksheets("Sheet1")
      '1行目を「行のタイトル」に設定
      .PageSetup.PrintTitleRows = .Rows(1).Address
      'A列を「列のタイトル」に設定
      .PageSetup.PrintTitleColumns = .Columns("A").Address
      '印刷プレビュー実行
      .PrintPreview
  End With

End Sub

行タイトルと列タイトルを設定するには「PrintTitleRowsプロパティ/PrintTitleColumnsプロパティ」を使用します。

構文:オブジェクト.PrintTitleRows/PrintTitleColumns = expression

行タイトルはPrintTitleRowsプロパティ、列タイトルはPrintTitleColumnsプロパティで設定できます。

このプロパティで指定した行・列については必ず各ページに表示され印刷されるようになるので、複数ページに跨るような大きな表等の印刷には大変便利です。

サンプルではRowsプロパティとColumnsプロパティを使用して1行目を行のタイトル、A列を列のタイトルに指定しています。指定後に印刷プレビューを実行して状態を確認するようにしています。

◆行タイトル・列タイトルの非表示

Sub Sample2()

  MsgBox "行・列タイトルを非表示にします"

  With Worksheets("Sheet1")
      '※PrintTitleRows/PrintTitleColumnsプロパティに
      ' 「False」または空の文字列("")を設定すると
      ' 非表示にすることができます。
      .PageSetup.PrintTitleRows = False
      .PageSetup.PrintTitleColumns = False
      .PrintPreview
  End With

      '参考: .PageSetup.PrintTitleRows = ("")
      '    .PageSetup.PrintTitleColumns = ("")でも可

End Sub

PrintTitleRowsプロパティ、PrintTitleColumnsプロパティを「False」、または「空の文字列(“”)」に設定するとタイトルを非表示とすることができます。

3.まとめ

扱いは特に難しいこともありませんので、知っておくと大変便利なPrintTitleRows/PrintTitleColumnsプロパティです。



設定のオンオフ自体も簡単に対応出来ますから、何か機会があれば使用してみても良いかと思います。私は出力したデータを印刷まで一貫して処理することも多いので良く使ってます。

以上、行・列タイトルを取得し設定する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました