4

私はExcel AddInを書いています。ワークブックのプロパティに応じて一部のコントロールが有効/無効になるリボンを使用します。

そのためには、アクティブなワークブックが変更されるたびに、リボン コントロールの状態を更新する必要があると思います。

Chip Pearson のサイトでは、 VBAそれを行う方法が説明されています。ここでは、アクティブな Excel ワークブックを取得する方法について説明していますが、C# AddInでこのイベントをトリガーすることはできません。

4

1 に答える 1

2

次のコードをThisAddIn クラスに追加すると、必要に応じてイベントが発生するようです。

    void Application_ActiveWorkbookChanges(Excel.Workbook Wb)
    {
        // TODO: Active Workbook has changed. Ribbon should be updated.    
    }

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WorkbookActivate   += 
            new Excel.AppEvents_WorkbookActivateEventHandler
                (Application_ActiveWorkbookChanges);
        this.Application.WorkbookDeactivate += 
            new Excel.AppEvents_WorkbookDeactivateEventHandler
                (Application_ActiveWorkbookChanges);
    }
于 2012-08-07T19:29:59.720 に答える