Excel VSTO アドインでイベントが発生しなくなる件
Excel の VSTO アドインを作成中に、イベント(セルチェンジなど)が発生しなくなる現象が発生したため、その原因と対処について
VSTOとは?
Visual Studio Tools for Officeの略。Excelのアドインを作成することができる。
大きな違いは以下。
- 従来のCOM参照で作成する場合、Excelのオブジェクトを作成すると、すべてReleaseComObjectを呼び出して解放しなければならない。(変数に代入しなくても.で参照したオブジェクトすべて)
- VSTOを利用した場合、と内部で参照数を管理してくれるため、ReleaseComObjectは不要で.netのガベージコレクションに任せることができる。
現象
Worksheet.SelectionChangeイベントなど設定したものが不定期なタイミングで効かなくなる。
例
gistbd378ccd842de5e2cad9a6dbdaedc529
最初に、Sheet2のセルを選択するとA1セルに、選択したセルのアドレスが表示される。
その後、Sheet3のセルを選択しても、動作しない。
Sheet3のセルを先に選択するとSheet3では動作するが、Sheet2では動作しなくなる。