VBScript

Office文書を旧バージョンのファイル形式に変換するVBScript

xlsxやdocxといった新しい形式のOffice文書をスクリプトファイルにドラッグ&ドロップすると、xlsやdocといった旧バージョンのファイル形式に変換して元ファイルと同じフォルダーに出力するVBScriptです。

Option Explicit

Dim Fso
Dim Args
Dim OutputFilePath
Dim i

Const wdFormatDocument = 0
Const wdDoNotSaveChanges = 0
Const xlNormal = -4143
Const ppSaveAsPresentation = 1

Set Fso = CreateObject("Scripting.FileSystemObject")
Set Args = WScript.Arguments
If Args.Count < 1 Then
  MsgBox "旧バージョンのファイル形式に変換したいOffice文書を当スクリプトファイルにドラッグ&ドロップしてください。"
  WScript.Quit
End If

'ドロップされたファイルを処理(複数ファイル対応)
On Error Resume Next
For i = 0 To Args.Count - 1
  '拡張子によって処理分岐
  Select Case LCase(Fso.GetExtensionName(Args(i)))
    'Wordファイル処理
    Case "docx", "docm"
      OutputFilePath = Fso.GetParentFolderName(Args(i)) & ChrW(92) & Fso.GetBaseName(Args(i)) & ".doc"
      With CreateObject("Word.Application")
        .Visible = True
        .DisplayAlerts = False
        With .Documents.Open(Args(i))
          .SaveAs OutputFilePath, wdFormatDocument
          .Close wdDoNotSaveChanges
        End With
        .DisplayAlerts = True
        .Quit
      End With
    'Excelファイル処理
    Case "xlsx", "xlsm"
      OutputFilePath = Fso.GetParentFolderName(Args(i)) & ChrW(92) & Fso.GetBaseName(Args(i)) & ".xls"
      With CreateObject("Excel.Application")
        .Visible = True
        .DisplayAlerts = False
        With .Workbooks.Open(Args(i))
          .SaveAs OutputFilePath, xlNormal
          .Close False
        End With
        .DisplayAlerts = True
        .Quit
      End With
    'PowerPointファイル処理
    Case "pptx", "pptm"
      OutputFilePath = Fso.GetParentFolderName(Args(i)) & ChrW(92) & Fso.GetBaseName(Args(i)) & ".ppt"
      With CreateObject("PowerPoint.Application")
        .Visible = True
        .DisplayAlerts = False
        With .Presentations.Open(Args(i))
          .SaveAs OutputFilePath, ppSaveAsPresentation
          .Close
        End With
        .DisplayAlerts = True
        .Quit
      End With
  End Select
  WScript.Sleep 500 '処理待ち
Next
On Error GoTo 0

MsgBox "処理が終了しました。"

5年くらい前に書いたものが出てきたので、忘れないうちにメモしておきます。

■ 関連記事

・古い形式のWordテンプレートを新しい形式に一括変換するVBScript
//www.ka-net.org/blog/?p=3427
・ドラッグ&ドロップでExcelファイルをアドイン形式(xlam)に一括変換するVBScript
//www.ka-net.org/blog/?p=5264

関連記事

  1. VBScript

    GUIDを作成するVBScript

    Office アドインを作成するのに必要(マニフェストのId要素)なG…

  2. Windows関連

    ダウンロードフォルダーのパスを取得するVBScript

    ダウンロードフォルダーのパスを取得する必要があったので、過去に書いた記…

  3. VBScript

    【Illustrator】指定したPDFプリセットでAIファイルをPDFに一括変換するVBScrip…

    前回の記事で、Illustratorに登録されたPDFプリセットを列挙…

  4. VBScript

    ショートカットファイルを作成するVBScript

    ショートカットファイル(拡張子:lnk)を作成するVBScriptです…

  5. VBScript

    Windows Updateの更新履歴をCSV(UTF-8)で保存するVBScript

    以前書いたスクリプトが出てきました。Windows Updateの…

  6. VBScript

    指定したフォルダ内で最も更新日時の新しいファイルのパスを取得するVBScript

    大量のログファイルから最新のファイルのみを取得する必要があったので、簡…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP