Excel COM アドインを作成します。今、WorkbookBeforeClose イベントを制御したいと思います。
しかし、私が Stackoverflow で見つけたソリューション (イベント ハンドラー WorkbookOpen を使用する c# ) は、私にとってはうまくいきません。
私のアドインには、InternalStartup Sektion がなく、Load Sektion しかありません。
リボン バーのボタンを押すことによってのみ、イベント ハンドラーを開始できます。
Button 1x を押すと、Excel が読み込まれている間、Eventhandler が必要なことを実行します。
Excelを閉じて再起動したら、ボタンをもう一度押す必要があります。
Excelが最初の空のワークブックをロードしている間にイベントハンドラーが開始する方法はありますか???
ヘルプや解決策はありますか???
ありがとう、よろしく
ステファン
EventHandler に使用するコードは次のとおりです。
public partial class Excel2SE
{
Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose;
private void Excel2SE_Load(object sender, RibbonUIEventArgs e)
{
EventDel_BeforeBookClose = new Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose);
}
private void btn_Start_Click(object sender, RibbonControlEventArgs e)
{
wbEventhandlerStart();
}
private void wbEventhandlerStart()
{
Excel.Application app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
app.WorkbookBeforeClose += EventDel_BeforeBookClose;
}
// This Works when Excel Close
private void Excel2SE_Close(object sender, EventArgs e)
{
MessageBox.Show("Excel close");
}
// This works after Pushing the Start Button and the Workbook Close
private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel)
{
MessageBox.Show("WB close");
}