AI WordPress おすすめアプリ おすすめガジェット コピペで使える ブログ運営 ミニマリズム 中学生でもわかるIT 健康 問題解決 自動化 読書 転職先選び
VBS(Visual Basic Script)を使って、フォルダ内の複数のxlsm
ファイルをxlsx
形式に一括変換する方法を紹介する。このスクリプトを利用すれば、VBAマクロを削除して、より安全な形式でファイルを管理できる。
目次
コードの詳細説明
以下がスクリプトの全体像。
' 変数の宣言を強制することで、タイプミスによるエラーを防ぐ
Option Explicit
Dim bk, ex, f, gf, so
' ファイルシステムを操作するオブジェクトを生成
Set so = CreateObject("Scripting.FileSystemObject")
' スクリプトが配置されているフォルダを取得
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
' Excelアプリケーションを非表示で起動し、アラート表示を無効化
Set ex = CreateObject("Excel.Application")
ex.Application.DisplayAlerts = False
ex.Visible = False
' フォルダ内のすべてのファイルをループし、xlsmファイルをxlsx形式で保存
For Each f In gf.Files
If LCase(so.GetExtensionName(f.Name)) = "xlsm" Then
Set bk = ex.Workbooks.Open(gf & "\" & f.Name)
' 51はxlsx形式を指定
bk.SaveAs gf & "\" & so.GetBaseName(f.Name) & ".xlsx", 51
bk.Close
Set bk = Nothing
End If
Next
' Excelアプリケーションを終了し、オブジェクトを解放
ex.Quit
Set ex = Nothing
Set gf = Nothing
Set so = Nothing
' 処理完了を通知するメッセージボックスを表示
MsgBox("Finished")
実行方法と環境設定
STEP
VBSファイルの作成
上記コードをメモ帳などのテキストエディタにコピーし、拡張子を.vbsとして保存する(例: convert_xlsm_to_xlsx.vbs)。
STEP
必要な環境
Windows OSで実行する必要があり、Excelがインストールされていることが前提。Excel 2010以降のバージョンで動作を確認している。
STEP
実行手順
.vbsファイルをダブルクリックして実行。スクリプトが配置されたフォルダ内にあるxlsmファイルがxlsx形式に変換される。
セキュリティに関する注意事項
まとめと応用
このスクリプトは、VBAマクロが含まれているExcelファイルを一括で処理する場合に非常に役立つ。特に、セキュリティやパフォーマンスを考慮してマクロを削除したい場合に重宝する。必要に応じて、エラーハンドリングやログの記録機能を追加することで、より信頼性の高いスクリプトに改良することも可能。