「vbscript word ヘッダ削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Wordのヘッダーを削除するVBScriptのコードを探している方による検索です。
「vbscript word ヘッダ削除」
という検索キーワードからは、いろいろな仕様が考えられますが、ドラッグアンドドロップされたWordファイルからヘッダーを削除するスクリプトを作ってみました。
Wordのヘッダーを削除するサンプルスクリプト
下記のスクリプトを含んだテキストファイルの拡張子を「.vbs」として保存しておいて、ヘッダーを削除したいWordファイルを、作成したVBSファイルにドラッグアンドドロップすると、
「ドラッグアンドドロップされたWordファイルのヘッダーを削除しますか?」
というメッセージが表示され、[はい]を選択するとヘッダーの削除が行われます。
Dim args 'ドラッグアンドドロップされたファイル群
Dim fl_path 'ファイルのフルパス
Dim fso 'Scripting.FileSystemObject
Dim sec 'Word.Section
Dim hdr 'Word.HeaderFooter
Dim msg
With Wscript
Set args = .Arguments
If args.Count < 1 Then .Quit
msg = "ドラッグアンドドロップされたWordファイルのヘッダーを削除しますか?"
If MsgBox(msg, vbYesNo) = vbNo Then .Quit
End With
Set fso = CreateObject("Scripting.FileSystemObject")
With CreateObject("Word.Application")
.Visible = False
For Each fl_path In args
Select Case LCase(fso.GetExtensionName(fl_path))
Case "doc", "docx"
With .Documents.Open(fl_path)
For Each sec In .Sections
For Each hdr In sec.Headers
hdr.Range.Delete
Next
Next
.Save
.Close
End With
Case Else
'何もしない
End Select
Next
.Quit
End With
Set fso = NothingWScript.Echo "Wordファイルのヘッダーを削除しました。"
サンプルスクリプトの解説
FileSystemObjectをCreateObjectして、
Set fso = CreateObject("Scripting.FileSystemObject")
Wordを非表示状態で起動します。
With CreateObject("Word.Application")
.Visible = False
ドラッグアンドドロップされたファイルに対してFor Each~Nextループを回して、
For Each fl_path In args
拡張子をチェックします。
Select Case LCase(fso.GetExtensionName(fl_path))
この拡張子のチェックで、FileSystemObjectオブジェクトのGetExtensionNameメソッドを利用しています。
拡張子が「.doc」「.docx」だったときにはWordファイルを開いて、
Case "doc", "docx"
With .Documents.Open(fl_path)
全セクションの、全ヘッダーの削除を行っています。
For Each sec In .Sections
For Each hdr In sec.Headers
hdr.Range.Delete
このヘッダー削除処理は、既にご紹介しているWordで開いているファイルのヘッダー・フッターを削除するマクロと同じ考え方で、今回はヘッダーだけを削除しています。
ヘッダーの削除が終わったら上書き保存を行って、
.Save
Wordファイルを閉じています。
.Close
ドラッグアンドドロップされたファイルの拡張子が「.doc」「.docx」でなかった場合は特になにもしていません。
Case Else
'何もしない
End Select
ドラッグアンドドロップされた全ファイルの処理が終わったら、Wordを終了して、終了です。
Next
.Quit
End With
Set fso = Nothing
WScript.Echo "Wordファイルのヘッダーを削除しました。"
上記のスクリプトは最低限の拡張子の確認だけを行っていますので、ファイルが書き込み禁止だったりする可能性がある環境で利用するような場合は、適宜エラートラップを入れてください。
- Newer:Array関数がOption Base 1の影響を受けないケース
- Older:Array関数の使い方・サンプル
Home » WSH・Windows Script Hostの使い方 » Wordのヘッダーを削除するVBScript