Translate

VBSでマクロの実行時に警告を非表示にする方法

マクロ付きExcelファイルを実行する際に、VBScriptで警告を抑制する方法




VBScriptでマクロ付きExcelファイルを起動する際に、マクロの実行警告を表示させないコード


下図のようなメッセージだけ表示するマクロ付きExcelファイルがあるとする。

何の害も無いこのマクロ付きExcelファイルのxlsmファイルを開こうとした場合でも、警告が表示される。

このファイルを開こうとすると・・・

マクロ付きExcelファイルを実行する為の警告メッセージで、「セキュリティの警告:マクロが無効にされました。」と表示され、【コンテンツの有効化】ボタンを押さなければ、マクロが実行出来ない状態となる。

確実にそのファイルが安全だと分かっており、頻繁に開くファイルであった場合には、いちいちボタンを押下する作業が煩わしくなる。

また、マクロ付きExcelファイルである、xslmファイルを自動実行するバッチ処理であったりする場合等は、人がこのボタンを押さないといけない状態だと、無人での自動化の妨げとなる。

このメッセージを抑制、非表示とし、VBScriptで実行する場合は、下記のようなコードで実現できる。

仮に、AutoMacro.vbsとして保存


    Dim objExcel
    Dim objBook

    Set objExcel = CreateObject("Excel.Application")

    'イベント抑制
    objExcel.EnableEvents = False

    set objBook = objExcel.Workbooks.Open("P:\OneDrive\Download\test\testbook.xlsm"))

    objBook.Close()
    objExcel.Quit()

    Set objBook = Nothing
    Set objExcel = Nothing

  

共有フォルダーからコピーしてきたファイルは、あらかじめファイルのプロパティで、セキュリティに別途チェックを入れておく必要がある事をお忘れなく。

このVBSファイルを実行すると、警告を表示させずにマクロ付きExcelファイルを起動させる事が出来る。

auto_openにマクロを仕掛けている場合は、.RunAutoMacrosメソッドで、引数に1を渡して実行させることが出来ます。

objBook.RunAutoMacros 1

このブログの人気の投稿

VBAのADOで「パラメーターが少なすぎます。xを指定してください。」と表示された場合の原因

ACCESSでバーコードスキャンしたら自動でイベントを起こす方法

PostgreSQL 11 でpg_dumpallを使ってバックアップしたデータをリストアするとき文字化けの対処法

ACCESSのVBAを実行するとACCESSが強制終了する事がある

ACCESSのVBAでADOを利用したバインド変数を利用したデータベース連携方法

ACCESSでバーコードをスキャンして登録更新する簡単なサンプル

pgAdmin 4が遅いのは仕方がない | PostgreSQL things.

ACCESSのVBAでリストビュー(ListView)を使う為の設定 | Office365

ASP.NETのでクライアント証明書を使ったログイン認証を行う方法