« ヘッダー・フッターにセルの値を使用する | トップページ | 複数ページにまたがる表を印刷する時に,表タイトルを各ページに表示させる »

2020年4月 6日 (月)

ヘッダー・フッターに画像を表示させる

ヘッダー・フッターに
社外秘マークやロゴマークなど
画像を使用したい場合があります。

手動で画像を設定するには次のようにします。
[ファイル]-[印刷]-[ページ設定]-[ヘッダー/フッター]タブをクリックすると
下の画像のウィンドウが表示されます。

Vba20200406a

次に、[ヘッダーの編集]や[フッターの編集]をクリックすると
下の画像のようなウィンドウが開きますので
画像を表示したい左側・中央部・右側の中の1つをクリックしてから
[図の挿入]をクリックします。

Vba20200406b

画像ファイルを選択して[挿入]をクリックすると
画像が設定されます。

図の書式設定で
画像の大きさ、輝度、コントラスト、トリミングの設定もできます。

Vba20200406b

 

VBAでの方法について見ていきます。

ここではヘッダーの右側に
次の画像を表示させるようにします。

Vba20200406d

Filenameプロパティに画像保存先を指定をして,
RightHeaderプロパティの値を"&G"にします。

ヘッダー・フッターに画像を表示するコード1:

Sub macro20200406a()
    'ヘッダー・フッター
    '画像を使用

    With ActiveSheet.PageSetup.RightHeaderPicture
        .Filename = "C:\Users\Username\Documents\headerimg.png"
    End With
    ActiveSheet.PageSetup.RightHeader = "&G"

End Sub

実行結果:

Vba20200406e

ヘッダー右側以外の部分に画像を使用したい場合は
上のコードの「RightHeader」部分を
次のどれか1つに置き換えてください。

LeftHeader
ヘッダー左
CenterHeader
ヘッダー中央
RightHeader
ヘッダー右
LeftFooter
フッター左
CenterFooter
フッター中央
RightFooter
フッター右



図の書式設定の指定方法を見ていきます。
以降のコードは
macro20200406aでのWithステートメント内に追加して
使用してください。

画像の大きさの指定をしていきます。
次のコードを追加すると
画像の縦横比固定で、高さをセンチ単位で指定できます。
幅は高さを基準に自動で変更されます。

.LockAspectRatio = True
.Height = Application.CentimetersToPoints(1)

高さ・幅(センチ単位)を個別で指定したい場合は
次のコードを追加してください。

.LockAspectRatio = False
.Height = Application.CentimetersToPoints(1)
.Width = Application.CentimetersToPoints(1.5)



次のコードは画像の色の設定をします。

.ColorType = msoPictureGrayscale 'カラータイプ
.Brightness = 0.5 '輝度
.Contrast = 0.8 'コントラスト


ColorTypeプロパティには以下を指定できます。

msoPictureAutomatic
デフォルト
(輝度0.5、コントラスト0.5固定値)
msoPictureWatermark
ウォーターマーク変換
(輝度0.85、コントラスト0.15固定値)
msoPictureBlackAndWhite
モノクロ変換
(輝度、コントラストは指定可能)
msoPictureGrayscale
グレースケール変換
(輝度、コントラストは指定可能)
msoPictureMixed
混合変換
(輝度、コントラストは指定可能)

ColorTypeプロパティに
msoPictureAutomatic、msoPictureWatermarkを指定すると
輝度・コントラストを上に示した固定値を指定するのと同等です。
なのでColorTypeプロパティを単独で使い、
輝度・コントラストは指定しません。
輝度・コントラストを指定すると
ColorTypeはmsoPictureMixedに変換されます。

その他のColorTypeは
輝度・コントラストを別途指定できます。

Brightnessプロパティ(輝度)は
0.0(暗い)~1.0(明るい)までの数値で指定します。

Contrastプロパティ(コントラスト)は
0.0(低コントラスト)~1.0(高コントラスト)までの数値で指定します。

次に色を設定した場合の見た目の一例を提示します。

Vba20200406f

 

Vba20200406g

Vba20200406h

Vba20200406i

上下左右のトリミング幅(センチ単位)を指定するには
次のコードを追加してください。

'トリミング
.CropTop = Application.CentimetersToPoints(0.1) '上
.CropBottom = Application.CentimetersToPoints(0.1) '下
.CropLeft = Application.CentimetersToPoints(0.1) '左
.CropRight = Application.CentimetersToPoints(0.1) '右

使用Ver:Excel For Office365

|

« ヘッダー・フッターにセルの値を使用する | トップページ | 複数ページにまたがる表を印刷する時に,表タイトルを各ページに表示させる »

コメント

この記事へのコメントは終了しました。