• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAのファイル参照について)

VBAのファイル参照について

このQ&Aのポイント
  • VBAのファイル参照についてエラーが発生しています。使用しているExcelは2007です。
  • エラーメッセージ「実行時エラー '91'」や「実行時エラー '-2147417848 (80010108)'」が表示されます。
  • また、マクロでスタック領域が不足しているダイアログが表示されたり、Excelが応答なしになったりします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

>Openの方は余裕がありましたら、標準モジュールの方で処理をするように改善したいと思います。 >SheetChangeの方で何かお気づきの点がございましたらお教えいただければ幸いです。 #1です。Workbook_SheetChangeの中で、沢山のプロシージャを呼んで、(たぶん)複雑な処理をして、訳の分からないエラーに悩まされている様なので、イベントプロシージャをさっさと抜けて、別プロシージャで処理してみては如何という提案です。ご参考まで。

jororo0
質問者

お礼

ご回答ありがとうございます。 Application.Ontimeを実装しようとしたら無限ループに入っていることに気づき、↓こちらのページを参照して解決できました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1019464735

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

深く読んで無いですが、イベントマクロ中であまり複雑な処理をすると、トラブるのでは? Application.Ontimeを使って、イベントマクロから離れて小難しい処理に移る方法があるそうです。 聞きかじっただけで、さほど実用した訳ではありませんが、ご参考まで。 '☆Sheet1 Module Private Sub Worksheet_Change(ByVal Target As Range) Module1.setOnTime End Sub '小難しい処理 Public Sub ontimesub() MsgBox "Hello World!" End Sub '☆標準モジュール Module1 'クラスモジュール側でApplication.Ontimeが実行出来ないので仲立ちをする Sub setOnTime() Dim nextTriggerTime As Long nextTriggerTime = [now()+"00:00:00.10"] Application.OnTime nextTriggerTime, "onTimer" End Sub 'クラスモジュールの小難しい処理を実行 '標準モジュール側で処理しても勿論OK Sub onTimer() Sheet1.ontimesub End Sub

jororo0
質問者

補足

ご回答ありがとうございます。 Openの方は余裕がありましたら、標準モジュールの方で処理をするように改善したいと思います。 SheetChangeの方で何かお気づきの点がございましたらお教えいただければ幸いです。

関連するQ&A