- ベストアンサー
【Excel起動時の「~マクロを含んでいます。」メッセージを制御したい】
VBAよりShell関数を使用して特定したExcelファイルをvbHideモードで開き、バックグラウンドで処理を行うプログラムを作成しています。 問題なのは、開こうとするExcelファイルには、マクロが入力されいるため、開く際には「~マクロを含んでいます。」メッセージが表示されるので、ここで、「有効にする」「無効にする」の選択を聞かれますが、「有効にする」をプログラムの制御で選択することは可能でしょうか? いい案がありましたら、教えて頂きたいと思います。 宜しくお願いいたします。 Excel2000使用です。
- みんなの回答 (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 'オブジェクトを解放しておく
お礼
CreateObjectで実装してみたところ、上手くいきました。 とっかかりからつまずいていたので、本当に助かりました。 ありがとうございました。