VBScriptというのを使ってMicrosoftWordの今編集中のドキュメントの余白とヘッダー(ページ番号/頁数)を書き込めないか調べてみて、目途が立ったのでメモします。
使い方は、Wordを新規作成とか、古い文書も同じフォーマットに揃えたい場合、文書を編集状態にしておいて、VBScriptのアイコンをダブルクリックです。
自分のPCでだけ文書を作っているならマクロに保存して置くのも良いのですが、いろいろなPCで作業するとなるとちょっと気が引けるし…。
使い方は、Wordを新規作成とか、古い文書も同じフォーマットに揃えたい場合、文書を編集状態にしておいて、VBScriptのアイコンをダブルクリックです。
自分のPCでだけ文書を作っているならマクロに保存して置くのも良いのですが、いろいろなPCで作業するとなるとちょっと気が引けるし…。
'ダブルクリックすると、今開いているワードファイルの余白を整えて、ヘッダーにページ番号/ページ数を書き込むツール
'
'=========================================
'セッティング
'設定したい余白をmmで記入してください
Left_Margin=15
Right_Margin=15
Top_Margin=15
Bottom_Margin=15
'ヘッダーの紙端からの位置を㎜で記入してください(通常、上限はTop_Marginより8㎜くらい引く)
Header_Distance=7
'=========================================
Const K=2.83666666667:'変換係数
on error resume next
Set objWord = GetObject(,"Word.Application")
if err.number<>0 then
WScript.Echo "このツールは今開いているワードのシートの書式を規定の書式にするものです。"
else
on error goto 0
Set objDoc = objWord.ActiveDocument
'Set objSelection = objWord.Selection
Set WshShell = WScript.CreateObject("WScript.Shell")
'余白とヘッダー位置の指定
With objDoc.PageSetup
.LeftMargin = Left_Margin * K
.RightMargin = Right_Margin * K
.TopMargin = Top_Margin * K
.BottomMargin = Bottom_Margin * K
.HeaderDistance= Header_Distance * K
End With
Const wdSeekCurrentPageHeader=9
Const wdAlignParagraphRight=2
Const wdFieldEmpty=-1
Const wdCharacter=1
'ヘッダー編集エリアを開く
objDoc.ActiveWindow.ActivePane.View.SeekView=wdSeekCurrentPageHeader
'既存のヘッダー削除
objWord.Selection.WholeStory
objWord.Selection.Delete
'右揃え
objWord.Selection.ParagraphFormat.Alignment=wdAlignParagraphRight
'ページ番号フィールドコード
objWord.Selection.Fields.Add objWord.Selection.Range, wdFieldEmpty, "PAGE ", True
'選択か所に文字列書き込み
objWord.Selection.TypeText "/"
'ページ数フィールドコード
objWord.Selection.Fields.Add objWord.Selection.Range, wdFieldEmpty, "NUMPAGES ", True
'ヘッダー編集エリアを閉じる
objDoc.ActiveWindow.ActivePane.View.SeekView=wdSeekMainDocument
end if
Set objDoc=nothing
Set objWord=nothing
Set WshShell=nothing
'
'=========================================
'セッティング
'設定したい余白をmmで記入してください
Left_Margin=15
Right_Margin=15
Top_Margin=15
Bottom_Margin=15
'ヘッダーの紙端からの位置を㎜で記入してください(通常、上限はTop_Marginより8㎜くらい引く)
Header_Distance=7
'=========================================
Const K=2.83666666667:'変換係数
on error resume next
Set objWord = GetObject(,"Word.Application")
if err.number<>0 then
WScript.Echo "このツールは今開いているワードのシートの書式を規定の書式にするものです。"
else
on error goto 0
Set objDoc = objWord.ActiveDocument
'Set objSelection = objWord.Selection
Set WshShell = WScript.CreateObject("WScript.Shell")
'余白とヘッダー位置の指定
With objDoc.PageSetup
.LeftMargin = Left_Margin * K
.RightMargin = Right_Margin * K
.TopMargin = Top_Margin * K
.BottomMargin = Bottom_Margin * K
.HeaderDistance= Header_Distance * K
End With
Const wdSeekCurrentPageHeader=9
Const wdAlignParagraphRight=2
Const wdFieldEmpty=-1
Const wdCharacter=1
'ヘッダー編集エリアを開く
objDoc.ActiveWindow.ActivePane.View.SeekView=wdSeekCurrentPageHeader
'既存のヘッダー削除
objWord.Selection.WholeStory
objWord.Selection.Delete
'右揃え
objWord.Selection.ParagraphFormat.Alignment=wdAlignParagraphRight
'ページ番号フィールドコード
objWord.Selection.Fields.Add objWord.Selection.Range, wdFieldEmpty, "PAGE ", True
'選択か所に文字列書き込み
objWord.Selection.TypeText "/"
'ページ数フィールドコード
objWord.Selection.Fields.Add objWord.Selection.Range, wdFieldEmpty, "NUMPAGES ", True
'ヘッダー編集エリアを閉じる
objDoc.ActiveWindow.ActivePane.View.SeekView=wdSeekMainDocument
end if
Set objDoc=nothing
Set objWord=nothing
Set WshShell=nothing