« ヘッダー・フッターのフォント設定 | トップページ | ヘッダー・フッターに画像を表示させる »

2020年4月 5日 (日)

ヘッダー・フッターにセルの値を使用する

手動では
ヘッダー・フッターにセルの値を指定することはできません。

VBAで
セルの値を使用する方法を見ていきます。

次のコードは
アクティブシートのセル(1,1)の値を
ヘッダー右側に指定します。

ヘッダー・フッターにセルの値を使用するコード1:

Sub Macro20200405a()
'ヘッダー・フッター
'ActiveSheetのセルの値を使用
   
    With ActiveSheet.PageSetup
        .RightHeader = ActiveSheet.Cells(1, 1)
    End With
   
End Sub

特定のシートのセル値を使用するには
上記のコードのActiveSheetの部分を
次のコードのように変更します。
"Sheet1"の部分に任意のシート名を指定します。

ヘッダー・フッターにセルの値を使用するコード2:

Sub Macro20200405b()
'ヘッダー・フッター
'特定シートのセルの値を使用

    With ActiveSheet.PageSetup
        .RightHeader = Sheets("Sheet1").Cells(1, 1)
    End With
   
End Sub

この記事で紹介したコードで
ヘッダー・フッターに設定した値は
セルの値を基にした文字列です。
セルの値を変更しても
ヘッダー・フッターの内容は変わりません。

そこで、印刷時に
最新のセルの値を使用するために
印刷直前に上記のマクロを実行するようにします。

印刷直前にマクロを実行するには
Workbook_BeforePrintイベントプロシージャを使用します。

Visual Basic Editor(VBE)を起動して
プロジェクトエクスプローラーで
Workbookオブジェクトをダブルクリックします。
Vba20200405a

その後、
左側のプルダウンメニューでWorkbookを選択します。
Vba20200405b

右側のプルダウンメニューでBeforePrintを選択します。
Vba20200405c

下の画像のような状態になりますので
Workbook_BeforePrintイベントプロシージャ内に
印刷前に実行したいマクロ名を
Callメソッドで呼び出します。
ヘッダー設定後、メッセージボックスを表示して知らせます。

Vba20200405d

印刷前にマクロを実行するコード:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

    Call Macro20200405b
    MsgBox "ヘッダーを設定しました。"
   
End Sub

これで印刷する直前に
ヘッダーを設定するようにできました。
試しに印刷を実行してみます。

[印刷]ボタンを押した後に
下の画像のメッセージボックスが表示されるので
ヘッダーが設定されたのがわかります。
Vba20200405e

使用Ver:Excel For Office365

|

« ヘッダー・フッターのフォント設定 | トップページ | ヘッダー・フッターに画像を表示させる »

コメント

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