QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

EXCELファイルをマクロを無効にして開くには?

こんにちわ。

VB.netからマクロ付きのEXCELファイルを「マクロを無効にして」開きたいです。
以下のように実行いるのですが、「EnableEvents」プロパティが効かないのか、
マクロが有効の状態で開いてしまいます。
開き方が間違っているのでしょうか?アドバイスよろしくお願いします。

<環境>
Windows2000、WindowsXP
VB.NET2003

------------------------------------------------------------
Try
  xlsApplication = New Excel.ApplicationClass
  xlsApplication.EnableEvents = False

  xlsWorkBook = xlsApplication.Workbooks.Open("C:\test\test.xls", readonly:=True, updatelinks:=0)

  Return True

Catch ex As Exception

  Return False
End Try

[ メッセージ編集済み 編集者: yoko 編集日時 2004-07-05 19:35 ]

質問者:yoko

回答

Excel2000ならサポート情報が出ているようです。

・XL2000: EnableEvents プロパティは、オートメーション サーバーで動作しません。
http://support.microsoft.com/default.aspx?scid=kb;JA;211626&Product=xlw2kINT

といっても、今回これでは解決できないと思います。
別のBookにDisable_Eventsを定義して、先に呼び出すか。。。
(でもQuitまで戻せないですね)
Workbook_Open(Close)イベントだけならAuto_Open(Auto_Close)サブに変えれば、
OLE呼び出しでは動作しないようにすることができます。

投稿者:mito

編集 履歴 (0)

ご回答ありがとうございます。

「AutomationSecurity」プロパティを試してみましたが、使用できないようです(?)。

EXCELファイルのマクロについては、変更できないので、
呼び出す側(VB.NET)で対処したいと思っています。

投稿者:yoko

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。