• ベストアンサー

【Excel起動時の「~マクロを含んでいます。」メッセージを制御したい】

VBAよりShell関数を使用して特定したExcelファイルをvbHideモードで開き、バックグラウンドで処理を行うプログラムを作成しています。 問題なのは、開こうとするExcelファイルには、マクロが入力されいるため、開く際には「~マクロを含んでいます。」メッセージが表示されるので、ここで、「有効にする」「無効にする」の選択を聞かれますが、「有効にする」をプログラムの制御で選択することは可能でしょうか? いい案がありましたら、教えて頂きたいと思います。 宜しくお願いいたします。 Excel2000使用です。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

他にも方法があるのかもしれませんが、1つのやり方 Shell関数でなく、CreateObject("Excel.application")を使って、 エクセルをもう一つ作る そこで、AutomationSecurity を msoAutomationSecurityLow にセットしてから該当のファイルを開く 以下サンプル: Dim xl Set xl = CreateObject("Excel.application") xl.AutomationSecurity = msoAutomationSecurityLow xl.Workbooks.Open Filename:="c:\temp\test.xls" 'マクロがあるファイル xl.Quit 'もう一つのエクセルを終了させる、自動計算によって内容が変更されるようなファイルを開いた場合には、変更を保存しないでいいのか聞かれるがそういう場合は、あらかじめDisplayAlertsで抑制できる Set xl = Nothing 'オブジェクトを解放しておく

mari0629
質問者

お礼

CreateObjectで実装してみたところ、上手くいきました。 とっかかりからつまずいていたので、本当に助かりました。 ありがとうございました。

関連するQ&A