Office関連

古い形式のWordテンプレートを新しい形式に一括変換するVBScript

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

■ 使い方

  1. 上記コードをコピーしてメモ帳に貼り付けます。
  2. 拡張子を「vbs」にして保存します。
  3. 手順2.で保存したvbsファイルに、Wordのテンプレートファイル(dot)が保存されているフォルダーをドラッグ&ドロップします。

■ 関連記事

・Office文書を旧バージョンのファイル形式に変換するVBScript
//www.ka-net.org/blog/?p=3828
・ドラッグ&ドロップでExcelファイルをアドイン形式(xlam)に一括変換するVBScript
//www.ka-net.org/blog/?p=5264

Windows RT端末(ASUS VivoTab RT TF600T)を購入しました。前のページ

Word 2013の「個人用テンプレート」はどこ?次のページ

関連記事

  1. Office関連

    UI Automationの参考資料

    VBAからUI Automationを扱う際に参考になりそうな資料への…

  2. Office関連

    未読アイテムの件数を取得するOutlookマクロ

    「Outlook 未読 件数 マクロ」といったキーワード検索でのアクセ…

  3. Office関連

    VBAの力量をはかる3つの質問

    先日、Twitterではけた氏の面白いツイートがありました。3…

  4. Office関連

    Excel Services JavaScript APIを試してみました(2)

    前回の記事で、JavaScriptコードを貼り付けてExcelワークブ…

  5. Office関連

    「いちばんやさしいExcel VBAの教本」レビュー

    VBAの学習者であれば一度は見たことがあるであろう、超有名老舗サイト「…

コメント

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

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP