- 締切済み
Excelのアドイン
Excelのアドインを作成しています。 特定のファイルにだけ適用したいため、そのファイルのWorkbookのopenイベントでAddin.Installed = Trueにするようにしています。 Addin.Installed = Falseにするタイミングをアドイン側(xlaファイル)のWorkbookのcloseイベントに入れてしまうと Addin.Installed = Falseにした時点で自分自身(xlaのWorkbook_close)を呼び出してしまいます。 if Addin.Installed = Trueを入れていますのでAddin.Installed = Falseが2回実行されるわけではないのですが 再帰的な呼び出しを回避する方法はないでしょうか? 終了時にexcelがエラーを起こして "エラー送信"画面が出てしまって ここら辺があやしいのではと思っています。 環境はWindowsXP Excel2002 SP3 です。
- みんなの回答 (2)
- 専門家の回答
お礼
お礼遅くなり申し訳ありません。 参照設定とアドインの違いをよく理解していないのですが 作成したXLAファイルはデフォルトのADDINSフォルダに入れていて、Excelを起動しれば参照設定しなくてもツールのアドインに分析ツールなどと同様に表示されています。 あああ.xlaとすると それをvbaで特定のブックの起動時に Set a = AddIns("あああ") a.Installed = True というようにcheckedの状態にしてXLAの終了時にFalse(unchecked)にしていますので VBAのコード的にも参照設定はさせていません。このやり方ですとXLSブック側でa.Installed = Falseが実行されると同時に開いている他の特定のブックも同じ状態(unchecked)になりました。それでXLA側に記述しました。XLAにはその他SqlServerからのデータ取得などの共通Functionを入れています。 excelのアプリケーションは殆ど作ったことがなくアドインも今回初めて作りましたので根本的な使い方に無理があるのかもしれません。 アドバイスありがとうございました。