• ベストアンサー

【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

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • Excelマクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • エクセルにマクロが!

    エクセル(Excel2000)で、マクロを使っていないのにマクロが使われてしまいます。 例えば、 まず普通にスタート→プログラムと表示していき、エクセルを立ち上げる。 次にどこのセルでもいいから適当に文字を入力する。(例えば、A1にaと入力する) そして、ファイル→名前を付けて保存で保存する。 こうしてできたエクセルのファイルを普通に立ち上げると、「このファイルはマクロが使われています」と、マクロを有効にするか、無効にするかを確認する画面が出てきてしまいます。 どうしてでしょうか。直す方法はあるのですか。よろしくお願いします。

  • Excel制御

    PerlでExcelの制御をしたいと思っています。 Perlで作成したプログラムでExcelマクロをコーディングしたり、動かしたり… 何か方法、良い文献、WEBリファレンスなどありますでしょうか?

  • EXCELマクロでのtifファイルの開き方

    EXCELマクロで、tifファイルが開けません。 Shell関数で開こうと思ったのですが tifを開くソフトが何か分かりませんでした。 Shell関数以外でほかに方法はありますか? よろしくお願い致します。

  • VBA 起動時にエクセルの画面が表示されてしまう

    VBA 起動時にエクセルの画面が表示されてしまう こんにちは、VBA初めて1週間ぐらいの初心者です よろしくお願いします 動作環境として、OS:XP excel:excel2007 を使用しています まずはじめに、エクセルを開いて内容変更セーブして終了するというマクロを組んだのですが 別のプログラムから、 そのエクセルファイルに起動をかけて マクロを実行し終了するよう作りました。  /*** コード ***/ ThisWorkbook 0  Private Sub Workbook_Open() 1   Application.Visible = False          //エクセル画面を消す 2    3   call 内容変更し保存する関数()        // 標準モジュール内 SUB 関数 4    5   ThisWorkbook.Saved = True           // セーブしたことにする 6   If Workbooks.Count <= 1 Then Application.Quit // 他のエクセルが開いてない場合のみ終了する 7   ThisWorkbook.Close False            // エクセル終了 8  End Sub  /*** コード ***/ 質問1 ・1行目にエクセルの画面を消す関数を、プログラムの先頭に来ると思われる部分に入れて実行してみたのですが、 どうしても、起動してから画面を消す処理が始まるまでに、一瞬だけexcelのファイルが表示されてしまうのですが これを回避する方法はありますでしょうか? VBAを使ってマクロの処理をするのですが、 使う方にエクセルを使っているという事を悟られたくないのです 質問2 ・6行目、開いてるエクセルが自分だけの場合のみエクセルを終了すると組んだつもりなのですが、 処理を流すとエクセルで開いているファイルがすべて閉じてしまいます。 記述を間違えていたりしますか? 以上 ご教授お願いいたします <<検索ワード>> VBA VBA 起動画面表示 起動画面非表示 起動画面を出さない 起動画面を消す

  • Excelマクロを削除したのに…

    こんにちは。 いまExcel2003を使用しています。 あるブックファイルにマクロプログラム(VBA)を作成しました。 VBAProjectエクスプローラには標準モジュール「Module1」 ができています。 そこでこのマクロ自体を削除することになり, VBAProjectエクスプローラから標準モジュール「Module1」 を開放しました。 ところが当該ブックファイルを一旦閉じて, 改めて開くと,[セキュリティ警告]ダイアログが表示されて, マクロを有効にするか無効にするかを聞いてきます。 マクロを消したら, マクロセキュリティレベルを変えないままで, 上記のダイアログが出ないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 よろしくお願いします。

  • Excelのマクロについて

    普通マクロで作成したエクセルファイルを起動すると、マクロの「有効」「無効」を選択する画面が出てきます。 会社内のネットワークで文書を共有しており、エクセル2003がはいっているパソコンは、エクセルファイルを起動すると、選択する画面が出てきますが、エクセル2000がはいっているパソコンでは、マクロで作成したエクセルファイル(同じもの)を開いても選択画面が出なく、すぐにエクセルのシートが出てきます。 エクセル2000がはいっているパソコンで、マクロで作成したファイルとして選択画面が表示されるようにするためにはどのようにしたらよろしいのでしょうか? 恐れ入りますが、よろしくお願いいたします。

  • マクロの入ったエクセルを開くときのメッセージ

    疑問です。 過去履歴を調べてみたのですが、調べ方が悪いのかよくわかりませんでした。 マクロが含まれているエクセルのファイルを開くと、 「マクロにはウイルスが含まれている可能性があります。 マクロを無効にすると安全ですが、マクロが適正な場合機能が使えなくなります」 のメッセージが表示されます。 マクロはウイルス感染しやすいのでしょうか? どうしてこのようにあえてメッセージを出すのでしょうか? ワクチンソフトも導入していますし、毎回毎回このようなメッセージが でてくるのが面倒です。 このメッセージを表示させなくする方法はあるのでしょうか? ちなみにOSはWIN98、EXCEL2000を使っています。 無知なためにくだらない質問をさせていただいているかもしれません。 疑問に思ったため、是非どなたか教えていただければありがたいです。

  • Excel 2003のVBAマクロデータをExcel 2007で見たい

    Excel 2003のVBAマクロデータをExcel 2007で見たい。 Excel 2003でVBAマクロを登録したExcelファイルがありますが、今回、Excel 2007をインストールして、該当ファイルを開いたところ、「マクロデータを削除しました。」とメッセージが出て、VBEを起動してもマクロが見えなくなりました。OSはWindowsXP SP3です。Excel 2003で登録したVBAマクロをExcel 2007で削除されないで、次の2点について、可能にするにはどうすればよいか、ご教示願います。 (1)マクロデータを残す方法。 (2)マクロ起動する方法。

専門家に質問してみよう