@echo off
set ExcelPath="C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" REM Excelのインストールパス
set ExcelFile="C:\パス\MyExcelFile.xlsm" REM Excelファイルのパス
set VBAMacro="MyMacro" REM 実行したいVBAマクロの名前
start "" %ExcelPath% /e %ExcelFile% CALL :RunMacro
exit
:RunMacro
ping 127.0.0.1 -n 2 > nul REM Excelが起動するまで待機
echo Running VBA Macro...
powershell -Command "& { $xl = New-Object -ComObject Excel.Application; $xl.Visible = $false; $wb = $xl.Workbooks.Open(%ExcelFile%); $xl.Run(%VBAMacro%); $wb.Close($false); $xl.Quit() }"
exit /b