【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"

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

try {
    #ExcelファイルをOPEN
    $book = $excel.Workbooks.Open($file)

    #プロシージャを実行
    $excel.Run($proc)

    #ExcelをCLOSE
    $book.Close()

} 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の実行結果

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

実行結果
実行結果
PR

参考①

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

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

PR

参考②

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

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

タイトルとURLをコピーしました