古い形式のWordテンプレート(dot)を新しい形式(dotx,dotm)に変換するスクリプトを作成しました。
vbsファイルにdot形式のテンプレートが保存されているフォルダーをドラッグ&ドロップすると、同じフォルダー内に新しい形式のテンプレートファイルを出力します。
※ DocumentオブジェクトのHasVBProjectプロパティを使用しているので、Word 2007以前のバージョンでは動作しません。
Option Explicit Dim args Dim fso Dim itm Dim target '処理対象フォルダーのパス Const wdDoNotSaveChanges = 0 Const wdFormatXMLTemplate = 14 Const wdFormatXMLTemplateMacroEnabled = 15 Set args = WScript.Arguments If args.Count < 1 Then MsgBox "dotファイルが保存されているフォルダーを" & vbCrLf & _ "当スクリプトファイルにドラッグ&ドロップして" & vbCrLf & _ "処理を実行してください。", 16 + 4096 WScript.Quit ElseIf args.Count > 1 Then MsgBox "当スクリプトが一度に処理できるのは1フォルダーだけです。" & vbCrLf & _ "処理を中止します。", 16 + 4096 WScript.Quit End If Set fso = CreateObject("Scripting.FileSystemObject") If fso.FolderExists(args(0)) = False Then MsgBox "対象フォルダーが見つかりません。" & vbCrLf & _ "処理を中止します。", 16 + 4096 WScript.Quit End If target = args(0) If Right(target, 1) <> ChrW(92) Then target = target & ChrW(92) With CreateObject("Word.Application") .Visible = False For Each itm In fso.GetFolder(target).Files Select Case LCase(fso.GetExtensionName(itm.Path)) Case "dot" With .Documents.Open(itm.Path, False, True, False) If .HasVBProject Then .SaveAs target & fso.GetBaseName(itm.Path) & ".dotm", wdFormatXMLTemplateMacroEnabled Else .SaveAs target & fso.GetBaseName(itm.Path) & ".dotx", wdFormatXMLTemplate End If .Close wdDoNotSaveChanges End With End Select Next .Quit wdDoNotSaveChanges End With MsgBox "処理が終了しました。", 64 + 4096
■ 使い方
- 上記コードをコピーしてメモ帳に貼り付けます。
- 拡張子を「vbs」にして保存します。
- 手順2.で保存したvbsファイルに、Wordのテンプレートファイル(dot)が保存されているフォルダーをドラッグ&ドロップします。
■ 関連記事
・Office文書を旧バージョンのファイル形式に変換するVBScript
//www.ka-net.org/blog/?p=3828
・ドラッグ&ドロップでExcelファイルをアドイン形式(xlam)に一括変換するVBScript
//www.ka-net.org/blog/?p=5264
この記事へのコメントはありません。