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 365アイコン(imageMso)一覧(D)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  2. Office関連

    アクティブなスライドを取得するPowerPointマクロ

    PowerPointのマクロを触っていて、「ActiveSlide」の…

  3. VBScript

    実行中のアプリケーション一覧を出力するVBScript

    「VBS アプリ一覧 出力」というキーワード検索での訪問があったので、…

  4. Office関連

    Microsoft Graph SDK for PHPを使ったAPIの呼び出しサンプル

    知らない間に(恐らくBuild 2017のタイミングに合わせて)Mic…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP