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

関連記事

  1. Office関連

    ブラウザで簡単にOfficeドキュメントを確認できる「Office Web ビューアー」

    @seinoro さんのツイート(下記)で知ったサービス「View O…

  2. Office関連

    [リボン・カスタマイズ]splitButton要素で大量にある項目を使いやすくまとめる。

    「既存の機能の代わりにマクロを実行する」でコメント(下記)をいただきま…

  3. アイコン一覧

    Office 2013 アイコン一覧(G)

    ・Office 2013 アイコン一覧 NUM…

  4. Excel

    オデッセイ コミュニケーションズ主催のExcel VBA入門セミナーに参加しました。

    今月19日に開催されたオデッセイ コミュニケーションズさん主催の「Ex…

  5. Office関連

    Office 2016 Preview for Windowsのサポート情報まとめ

    「Office のサポート ページ - support.office.…

  6. Office関連

    コンテンツコントロールに外部XMLのデータをマップするWordマクロ

    Word 2007で追加された機能「コンテンツコントロール」を使うと外…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP