こんにちは、Ryoです。
印刷の設定にヘッダーやフッターがありますが、共通するロゴや表記などの画像を指定して表示させたいこともあるかと思います。その場合はLeft/Center/RightHeaderPictureプロパティ、又はFooterPictureプロパティで対応することが出来ます。今回はその内容や解除などについて書いていきます。
1.サンプル概要
例として「Sheet1」に以下画像の表があるとします。その表を印刷する際にヘッダー/フッターへ画像を指定し表示させます。

ヘッダーの指定画像サンプル

フッターの指定画像サンプル

これらを使用してサンプルコードを実行するとヘッダー⇒センター位置、フッター⇒右位置に画像が設定されますので、印刷プレビューで確認できます。

今回はこの内容と、設定後のヘッター/フッター解除方法やExcel環境によっては印刷プレビュー実行時に勝手に「図の書式設定」が開いてしまうので、それを強制的に閉じる方法などについて以下に書いていきます。
2.サンプルコード
◆ヘッダー/フッターに画像表示
Sub Sample1()
With Worksheets("Sheet1").PageSetup
'ヘッダー側
.CenterHeader = "&G" 'イメージの挿入設定
'表示画像の指定
.CenterHeaderPicture.Filename = _
ThisWorkbook.Path & "\head1.jpg"
'フッター側
.RightFooter = "&G"
.RightFooterPicture.Filename = _
ThisWorkbook.Path & "\foot1.jpg"
End With
Worksheets("Sheet1").PrintPreview
'自動的に表示されてしまう「図形の書式設定」を閉じる
Application.CommandBars("Format Object") _
.Visible = False
End Sub
このサンプルコードを実行すれば上でのサンプル概要と同様の形になります。このようにヘッダー/フッターに画像を表示するにはCenterHeaderPicture/LeftHeaderPicture/RightHeaderPictureプロパティ、CenterFooterPicture/LeftFooterPicture/RightFooterPictureプロパティを使用します。
これはヘッダー/フッターの各位置に画像を表示する為のプロパティになります。
| 定数 | 内容 |
| CenterHeaderPicture | 中央ヘッダー |
| RightHeaderPicture | 右側ヘッダー |
| LeftHeaderPicture | 左側ヘッダー |
| CenterFooterPicture | 中央フッター |
| RightFooterPicture | 右側フッター |
| LeftFooterPicture | 左側フッター |
まず.CenterHeader = “&G”としているのは、中央ヘッダーに画像を配置することを設定する為の記述になります。この辺りの設定については今回触れませんが「画像を表示」したい時はCenter/Left/RightHeaderプロパティ=”&G”とする必要があることを認識いただければと思います。
次に表示画像を指定しますので、.CenterHeaderPicture.Filename = ThisWorkbook.Path & “\head1.jpg”のように記述します。本サンプルでは動作ファイル(ブック)と同パスに保存してある画像ファイルを指定して読み込んでいますので、パスが異なる場合は別途指定する必要があります。
後はフッター側も同様の流れで記述しています。その後印刷プレビューにて印刷状態を確認するようになるのですが、私の環境では何故か勝手に「図の書式設定」も起動するようで、このように画面右側に出てきます。

原因を調べてみるとなかなか根深そうなので、一先ず強制的に閉じられるようにApplication.CommandBars(“Format Object”) .Visible = Falseとしています。こうすることで閉じることが出来ますので私同様の症状の方はご参考までに。当然ながらこの症状がなければこの部分は記述しなくてもOKです。
◆ヘッダー/フッターの解除
設定したいこともあれば、当然ながら設定した内容を破棄したいこともありますので、その場合の対処は以下の通りになります。
Sub Sample2()
With Worksheets("Sheet1").PageSetup
'ヘッダー側削除
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
'フッター側削除
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
End Sub
Center/Left/RightHeaderプロパティ=””とすれば簡単に削除してくれますので、覚えておくと便利ですね。

3.まとめ
私自身はあまりヘッダーやフッターを使用しないのですが、こうして書いてみると上手く活用したほうが何かと便利だったり見栄えも良くなる気がします。
今回は画像表示に限定した書き方をしていますが、ヘッダー/フッター自体は色々な設定があるようなので、今後機会があればその辺りも書いてみようと思います。
以上、ヘッダー/フッターへの画像表示や解除などについてでした!今回の記事が何かの参考になれば幸いです。
Ryo

