[リストへもどる]
一括表示

投稿時間:2004/02/19(Thu) 15:08
投稿者名:ゆーみん
Eメール:
URL :
タイトル:
Excelマクロの無効化
いつも有難うございます。
過去ログ等を探したのですが、見つからず
(私の探し方が悪いとは思うのですが)
質問させてください。

ある既存のExcelファイルに「Workbook_Open」マクロが
既に組まれています。
普通にExcelから開くと「無効に〜」というメッセージが
でます。

それをVBから開いた際に「Excelから起動して無効にするを
クリックしたのと同じ状態」で開きたいのです。

私の作成したVBプログラムでは、「無効に〜」メッセージは
でません(xlApp.Workbooks.openにしているので)
ただし、「有効にする」で開いた状態となっていて、
Workbook_Openが動いています。

xlApp.EnableEvents = False という構文をWebで探して
やってみたのですが、「有効にする」で開いてしまいます。

結局は、「無効に〜」のメッセージも表示せず、作成されている
マクロを「無効」として開きたいのです。
何か方法があるのでしょうか?

投稿時間:2004/02/20(Fri) 02:11
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Excelマクロの無効化
> ある既存のExcelファイルに「Workbook_Open」マクロが

私の環境ではマクロが実行されませんが?。

    Set xlApp = CreateObject("Excel.Application")
    xlApp.EnableEvents = False
    Set xlBook = xlApp.Workbooks.Open(FilePath)
    Set xlSheet = xlBook.Worksheets(1)
    xlApp.Visible = True


Excel側のマクロ

Private Sub Workbook_Open()
    Range("E5").Select
    ActiveCell.FormulaR1C1 = "Workbook_Openマクロが実施されました。"
    Range("A1").Select
End Sub


但し、下記のように書くとマクロが実行されます。
    xlApp.EnableEvents = False この一行の書いている場所が間違っているという事は
ないですよね。

    Set xlBook = xlApp.Workbooks.Open(FilePath)
    Set xlSheet = xlBook.Worksheets(1)
    xlApp.EnableEvents = False
    xlApp.Visible = True

後は、Auto_Open() の方にマクロを書いてみるとか。

投稿時間:2004/02/20(Fri) 11:17
投稿者名:ゆーみん
Eメール:
URL :
タイトル:
Re^2: Excelマクロの無効化
花ちゃん様ご返答有難うございます。
>     Set xlApp = CreateObject("Excel.Application")
>     xlApp.EnableEvents = False
>     Set xlBook = xlApp.Workbooks.Open(FilePath)
Set xlApp と Set xlBookの間にxlApp.EnableEvents=Falseを
入れてみましたが、マクロが有効で実行されてしまっています。

> 後は、Auto_Open() の方にマクロを書いてみるとか。
このExcelファイルは他の人が作ったもの(使う物)で
内容は変更できないのです。

なにか原因があるのでしょうか?
Excel2000でマクロのセキュリティは「中」です。
(できればマクロのセキュリティはこのままで)
VB6.0SP5で作成しています。