Home » WSH・Windows Script Hostの使い方 » Word文書から表を削除するVBScript

WSH, VBScript, Word

表をすべて削除するWordマクロを、ご紹介しています。

同じことをWord VBA(Visual Basic for Applications)ではなく、VBScriptで行いたいという方もいらっしゃるようです。

このサイト・インストラクターのネタ帳へも、
「word vbs 表 削除」
といった検索キーワードでのアクセスがあります。

[スポンサードリンク]

Word文書の表を削除するサンプルスクリプト

以下のようなスクリプトで、指定したWord文書内の表を、一気に削除できます。

Option Explicit
'-- main begin ----
Dim args
Set args = Wscript.Arguments
If args.Count < 1 Then
 MsgBox "表を削除したいWordファイルを、ドラッグ&ドロップしてください。"
 Wscript.Quit
End If

Dim msg
msg = "ドラッグ&ドロップされたWordファイルの表をすべて削除しますか?"
If MsgBox(msg, vbYesNo) = vbNo Then Wscript.Quit

Private wrd
Set wrd = CreateObject("Word.Application")
wrd.Visible = False

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f_path ' ファイルのフルパス
For Each f_path in args
 Select Case UCase(fso.GetExtensionName(f_path))
  Case "DOC", "DOCX", "DOCM"
   Call removeAllTables(f_path)
  Case Else
   MsgBox fso.GetFileName(f_path) & "はWordファイルではありません。"
 End Select
Next
Set fso = Nothing

wrd.Quit
Set wrd = Nothing
MsgBox "スクリプトが終了しました。"
'-- main end ----

Private Sub removeAllTables(ByVal doc_path)
 With wrd.Documents.Open(doc_path)
  Dim tbl
  For Each tbl in .Tables
   tbl.Delete
  Next
  .Save
  .Close
 End With
End Sub

上記のスクリプトを拡張子「.vbs」で保存して、Wordファイルをドラッグアンドドロップすると、
「ドラッグ&ドロップされたWordファイルの表をすべて削除しますか?」
というメッセージが表示され、[はい]ボタンをクリックすると、指定された文書の表がすべて削除されます。

サンプルスクリプトの解説

基本構造は、Excelファイルの全シートを表示するVBScriptと、よく似ています。

Wordマクロなら、Wordの[元に戻す]コマンドが使えますが、VBScriptからの削除処理なので、
 Dim msg
 msg = "ドラッグ&ドロップされたWordファイルの表をすべて削除しますか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Wscript.Quit
と、確認を行うようにしています。

Word文書に処理したいので、拡張子の判定部分が、Excelファイルに処理するVBScriptとはもちろん異なります。
 Select Case UCase(fso.GetExtensionName(f_path))
  Case "DOC", "DOCX", "DOCM"

表の削除処理を行っているSubプロシージャ内の、
 With wrd.Documents.Open(doc_path)
  Dim tbl
  For Each tbl in .Tables
   tbl.Delete
  Next
  .Save
  .Close
は、Word VBAのコードとほとんど同じですが、VBScriptですから、
 With wrd.Documents.Open(doc_path)
と、CreateObjectしたWord.Applicationオブジェクトから、指定するオブジェクト式になっています。

[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » Word文書から表を削除するVBScript

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

検索


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

.