Event Handling



Using the COM Events

Add a Reference to the Excel Interop.
Assemblies, Extensions: "Microsoft.Office.Interop.Excel" (version 15.0.0.0)
Add a "using" reference to the top to provide a shorthand to this namespace.
Cast the "ExcelDnaUtil.Application" to the type "Microsoft.Office.Interop.Excel.Application" to get intellisense
Register an event handler for the AfterCalculate event.
The "AppEvents_AfterCalculateEventHandler" will not appear in the intellisense.

using Excel = Microsoft.Office.Interop.Excel; 

namespace ExcelDNALibrary
{
    public class Class1 : ExcelDna.Integration.IExcelAddIn
    {
        public void AutoOpen()
        {
            Excel.Application xlApp;
            xlApp = (Excel.Application)ExcelDna.Integration.ExcelDnaUtil.Application;

            xlApp.AfterCalculate += new Excel.AppEvents_AfterCalculateEventHandler(Method_RunAfterCalculate);
        }
        public void AutoClose()
        {
        }

        [ExcelDna.Integration.ExcelFunction(Category = "BETTER", Description = "HelloWorld", Name = "myFunction")]
        public static string myFunction([ExcelDna.Integration.ExcelArgument(Description = @"Text Value")] string sText)
        {
            object val = ExcelDna.Integration.ExcelAsyncUtil.Run(
                "myFunction",
                new object[] { sText },
                delegate
                {
                    return sText;
                });

            return (string)val;

        }
        public void Method_RunAfterCalculate()
        {
            System.Windows.Forms.MessageBox.Show("calculation has completed");
        }
    }
}


© 2024 Better Solutions Limited. All Rights Reserved. © 2024 Better Solutions Limited TopPrevNext