毎日AM07:00確実更新

VBSでxlsmファイルを一括でxlsx形式に変換し、VBAマクロを削除する方法

VBSでxlsmファイルを一括でxlsx形式に変換し、VBAマクロを削除する方法
  • URLをコピーしました!

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形式に変換される。

セキュリティに関する注意事項

VBSスクリプトは強力なツールである一方、誤った使い方をするとシステムに悪影響を及ぼす可能性がある。不明なソースから入手したスクリプトの実行は避け、必ずコードを理解した上で実行すること。

まとめと応用

このスクリプトは、VBAマクロが含まれているExcelファイルを一括で処理する場合に非常に役立つ。特に、セキュリティやパフォーマンスを考慮してマクロを削除したい場合に重宝する。必要に応じて、エラーハンドリングやログの記録機能を追加することで、より信頼性の高いスクリプトに改良することも可能。

VBSでxlsmファイルを一括でxlsx形式に変換し、VBAマクロを削除する方法

この記事が気に入ったら

  • URLをコピーしました!
  • URLをコピーしました!
目次