フッター

フッターとして説明するが、ヘッダーも基本同じ。
Excelメニューからフッターに時刻やらファイル名やらを指定できるし、シートを複数選択して操作もできるのであまりVBAの出番はないかも知れない。
ただ他の案件で既に自動化していてこれもついでに、とかいうこともあるだろう。
また、例えば特定セルの値を指定することはできないし、ファイル名の一部を、とかもできないので、必要となることもある。

中央フッターの場合は下のような感じになる。
Dim w As Worksheet
Set w = ThisWorkbook.Worksheets(1)
w.PageSetup.CenterFooter = "フッターの文字列"
すべてのワークシートを対象とするなら下のような感じ。
Dim w As Worksheet
For Each w In ThisWorkbook.Worksheets
    w.PageSetup.CenterFooter = "フッターの文字列"
Next
右はRightFooter、左はLeftFooter
ヘッダーならRightHeader,CenterHeader,LeftHeaderとなる。

時刻やらファイル名の指定は以下の文字にすれば良い。
&T時刻
&Pページ番号
&N総ページ数
&Zパス名
&Fファイル名
&Aシート名
&G
図というのは画像データのこと。以下のプロパティに画像ファイル名をパス付きで指定する。
.PageSetup.CenterFooterPicture.Filename
-

MS-Wordの文書プロパティ

MS-Wordには「文書のプロパティ」というものがある。
ファイルのプロパティの一種みたいなもので、Word文書に関する様々なファイルに関する情報をつけることができる。
「文字数」や「リビジョン」のように自動的につけられるものもあるし、ユーザーがつけるものもある。
これは文書中に“差し込む”こともできるので便利。
文書中で使うには「クイックパーツ」の中から選ぶ。

枠になっているのでそこに入力するなど書き換えることも出来る。

これをVBAで制御出来ると便利なことがある。
例えばExcelから設定してWord文書を開くなどができる。
ただし、使えるものは限定されていて対応は下のようになる。
Keywordsキーワード
Commentsコメント
Subjectサブタイトル
Titleタイトル
Company会社
Manager管理者
Author作成者
Content status状態
Category分類
ちなみにこれを調べたのは下のようなプログラムを使った。
このプログラムはWord文書が持っているプロパティを全部表示するものだ。
「ドキュメントプロパティ.docx」はクイックパーツから文書のプロパティにあるものを全部置いてみて、中身をなんかいれておく。
Sub test()
Dim path, fn
Dim DocObj As Object
path = ThisWorkbook.path
fn = path & "\ドキュメントプロパティ.docx"
Set DocObj = GetObject(fn)
Dim bdp As Object
Dim i, val

On Error GoTo err
i = 1
For Each bdp In DocObj.BuiltinDocumentProperties
With bdp
val = .Value
Debug.Print .Name & ":=" & val
Cells(i, 1) = .Name
Cells(i, 2) = val
i = i + 1
End With
Next
Set DocObj = Null
Exit Sub
err:
val = "(アクセス禁止)"
Resume Next
End Sub
-