古い形式の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

  



















この記事へのコメントはありません。