複数のExcelファイルをアドイン形式(xlam)に変換する必要があったので、以前書いた記事を流用してスクリプトを書いてみました。
Option Explicit Dim Fso Dim Args Dim OutputFilePath Dim i Const xlOpenXMLAddIn = 55 Set Fso = CreateObject("Scripting.FileSystemObject") Set Args = WScript.Arguments If Args.Count < 1 Then MsgBox "アドイン形式(xlam)に変換したいExcelファイルを当スクリプトファイルにドラッグ&ドロップしてください。", vbExclamation + vbSystemModal WScript.Quit End If 'ドロップされたファイルを処理(複数ファイル対応) On Error Resume Next For i = 0 To Args.Count - 1 Select Case LCase(Fso.GetExtensionName(Args(i))) Case "xls", "xlsx", "xlsm" OutputFilePath = Fso.GetParentFolderName(Args(i)) & ChrW(92) & Fso.GetBaseName(Args(i)) & ".xlam" With CreateObject("Excel.Application") .Visible = True .DisplayAlerts = False With .Workbooks.Open(Args(i)) .SaveAs OutputFilePath, xlOpenXMLAddIn .Close False End With .DisplayAlerts = True .Quit End With End Select WScript.Sleep 500 '処理待ち Next On Error GoTo 0 MsgBox "処理が終了しました。"
使う場面は限られていますが、一々ファイルを開いて名前を付けて保存して・・・という手間は掛からないので、Excelファイルをxlamファイルに一括変換したいときにはお薦めのスクリプトです。
■ 関連記事
・古い形式のWordテンプレートを新しい形式に一括変換するVBScript
//www.ka-net.org/blog/?p=3427
・Office文書を旧バージョンのファイル形式に変換するVBScript
//www.ka-net.org/blog/?p=3828
この記事へのコメントはありません。