[[20120508111422]] 『マクロを有効にしても一部のマクロが動かない』(なら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロを有効にしても一部のマクロが動かない』(なら)

はじめて質問します。よろしくお願いします。

Excel2003で作成したファイルで、開いた際に「マクロを有効にする」を選択しているのにもかかわらず、動くマクロと動かないマクロがあります。

動くマクロ…標準モジュールのマクロ(ボタンに登録したSudプロージャ、起動時のフォーム出現など)

動かないマクロ…各シートのマクロ(Worksheet_Activate、Worksheet_ChangeなどのPrivate Subプロージャ)

同時に開いているほかのファイルではこの現象は見られません。

どなたか考えられる原因などあれば教えてください。お願いします。


失礼しました。

先ほど動くようになりました。

閉じる⇒「マクロを有効にする」を選択して開く

を繰り返していたところ動くようになりました。

そもそもの発生原因は分からないままですが。。。

ひとまずは解決してしまいました。

大変失礼しました。


原因のひとつでないかと思われるのは、イベントマクロ開発中にはよくある、

下記のような事例です。

プロシージャ内で、

Application.EnableEvents = False

が実行されたあとにTrueに戻すことなく、

 Exit Subなどでプロシージャを抜けてしまう書き方がされていませんか?

また、エラーなどでいったんマクロが停止するなどしませんでしたか?

Application.EnableEvents = True

が実行されずにマクロが終了してしまうと、

マクロのトリガーとなるイベントを拾わなくなってしまうので、

イベントマクロが動かなくなる場合は有ります。

標準モジュールに

Application.EnableEvents = True

を実行するプロシージャを作成しておいて、

そのような原因が思い当たるときに実行してみるとか。

(みやほりん)


 たぶん、Application.EnableEvents がらみだと思うね。

 (同時に開いている別ブックではOKというのが気になるけど)

 ところで、状況の確認は、VBEでイミディエイトウインドウを表示して

 ?Application.EnableEvents と打ち込んでエンターをおすとTrue/Falseが表示されるし

 Falseになった状態を復旧するには、プロシジャを用意しておかなくても

 ここで Application.EnableEvents = True と打ち込んでエンターしてもいいね。

 (ぶらっと)


みやほりんさん。ありがとうございます。

 >Application.EnableEvents = False
 >が実行されたあとにTrueに戻すことなく、

Application.EnableEvents = Trueで終わるマクロが正常に実行された後も

現象は改善しなかったため、今回のケースには当てはまらないようにも思います。

ただ現在は解消してしまったため同じ現象を再現できないので

また同様の問題が発生した際には確認してみます。

どうもありがとうございました。

ぶらっとさん。ありがとうございます。

 >ところで、状況の確認は、VBEでイミディエイトウインドウを表示して

 >?Application.EnableEvents と打ち込んでエンターをおすとTrue/Falseが表示されるし

とても勉強になりました。

今後活用していきます。どうもありがとうございました。

(なら)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.