Excel2000,2003,2010のVBAでの質問ですが、
自ワークブックに所属する標準モジュールでADOをExcelデータで使用する(http://support.microsoft.com/kb/257819/ja)をしたのですが、
・そのVBAにはパスワードがかかっている
・そのExcelデータは自ワークブックに所属する
の場合、Excel終了時(Application.Quit())におかしくなります。おかしくなるなり方にはいくつか有りますが、
・ワークブック・VBEとも終了するが(画面から非表示になっているだけかも)、VBAのパスワード要求が来る〔大部分の場合、典型的〕
・異常終了し、回復してもVBAの予期しない箇所を実行してくる
が主な事象です。
上記リンクでも、ワークブックにパスワードがかかっていると問題だとは記載されていますが、VBAのパスワードの件は有りません。
実際のところ、どうしようもなくて、ADOを(自ワークブックの)Excelデータで使用するのはあきらめ、ExcelデータはFor Nextで検索する様に
しました。
本当にだめだったのでしょうか?
-----------
後、冗談抜きで工数をかけて調査したので、自然と、自分なりの仮説を立てる所まで至りました。ソースは皆無です(すでにソースが有ったら、質問はしません)。
これについてのご判断もお願いします。
仮説:終了時におかしくなる原因:
・「ADOをExcelデータで使用する」場合、そのADO部品の終了条件として、Excelワークシートが閉じられる事が必須である。(仮説)
・Excelワークシートが閉じられるためには、そのワークシートが使用していたすべての部品が終了する必要がある。(仮説)
・両者はレースコンディションとなり、典型的にはExcelワークシートを閉じることに失敗し、VBAのパスワード要求が来るが、べつのタイミングでひっからまると異常終了を起こすことがある。
-----------
よろしくお願いいたします。
くわぢ