【VBA】Power ShellからVBAのプロシージャを実行する

Power Shellから
 ・VBAのプロシージャを実行
できます!

PR

VBAのコード

ここでは例として、
 ・デスクトップ配下のExcelファイル「sampl_001.xlsm」の
 ・Subプロシージャ「sample」
を作成します。

VBAコードを作成するExcelファイル
VBAコードを作成するExcelファイル
Subプロシージャ「sample」
Subプロシージャ「sample」
Sub sample()
    'メッセージ出力
    MsgBox ("VBAからのメッセージ出力です!")
End Sub
PR

Power Shellのコード

ここでは例として、
 ・上記で作成したVBAコードを実行する
 ・Power Shellファイルを作成
します。
※デスクトップ配下に「excel_vba実行サンプル.ps1」を作成します。

作成するPower Shellファイル
作成するPower Shellファイル
# Excelファイルのパスを指定
$file = "C:\Users\user\Desktop\sampl_001.xlsm"
# プロシージャ(マクロ)を指定
$proc = "sample"

# Excelオブジェクトを取得
$excel = New-Object -ComObject Excel.Application

try
{
    # ExcelファイルをOPEN
    $book = $excel.Workbooks.Open($file)
    # プロシージャを実行
    $excel.Run($proc)
    # ExcelファイルをCLOSE
    $book.Close()
}
catch
{
    $ws = New-Object -ComObject Wscript.Shell
    $ws.popup("エラー : " + $PSItem)
}
finally
{
    # Excelを終了
    $excel.Quit()
    [System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($excel) | Out-Null
}

状況に応じて
 ・Excelファイルのパス  ※2行目。上記ではデスクトップ配下のsampl_001.xlsm」を指定。
 ・プロシージャ(マクロ)名 ※4行目上記では「sample」を指定。
を修正してください。

PR

Power Shellの実行

Power Shellを起動して以下のコマンドを実行します。

powershell -NoProfile -ExecutionPolicy Unrestricted C:\Users\user\Desktop\excel_vba実行サンプル.ps1
PR

実行結果

Power ShellからVBAのプロシージャが実行できました。

実行結果
実行結果
PR

参考①

Power Shellからではなく、VBScriptからVBAのプロシージャを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

Power Shellからではなく、バッチファイルからVBAのプロシージャを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

VBAから他のブックのマクロ(VBAコード)を実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

姉妹サイトとして
 ・PowerShellのノウハウサイト
も運営しています。