Home » WSH・Windows Script Hostの使い方 » Wordのヘッダーを削除するVBScript

対象:VBScript

「vbscript word ヘッダ削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Wordのヘッダーを削除するVBScriptのコードを探している方による検索です。

「vbscript word ヘッダ削除」
という検索キーワードからは、いろいろな仕様が考えられますが、ドラッグアンドドロップされたWordファイルからヘッダーを削除するスクリプトを作ってみました。

[スポンサードリンク]

Wordのヘッダーを削除するサンプルスクリプト

下記のスクリプトを含んだテキストファイルの拡張子を「.vbs」として保存しておいて、ヘッダーを削除したいWordファイルを、作成したVBSファイルにドラッグアンドドロップすると、
「ドラッグアンドドロップされたWordファイルのヘッダーを削除しますか?」
というメッセージが表示され、[はい]を選択するとヘッダーの削除が行われます。


Option Explicit

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 = Nothing
WScript.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メソッドを利用しています。

Wordのヘッダーを削除するVBScript

拡張子が「.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ファイルのヘッダーを削除しました。"

上記のスクリプトは最低限の拡張子の確認だけを行っていますので、ファイルが書き込み禁止だったりする可能性がある環境で利用するような場合は、適宜エラートラップを入れてください。

[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » Wordのヘッダーを削除するVBScript

TrackBack:0

TrackBack URL

Home » WSH・Windows Script Hostの使い方 » Wordのヘッダーを削除するVBScript

「WSH・Windows Script Hostの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.