Syncfusion AI Assistant

How can I help you?

How to check whether an Excel document contains macro?

24 Jun 20262 minutes to read

You can check whether the Excel document contains macro using HasMacros property of IWorkbook. The value true indicates that the Excel document has a Vba project.

The following code illustrate how to check whether an Excel document contains macro using XlsIO.

using (ExcelEngine excelEngine = new ExcelEngine())
{
  //Instantiate the excel application object.
  IApplication application = excelEngine.Excel;

  //Opening form module existing workbook
  IWorkbook workbook = application.Workbooks.Open("Test.xls");
  IWorksheet sheet = workbook.Worksheets[0];

  //Check macro exist
  bool IsMacroEnabled = workbook.HasMacros;     

  // Save the workbook
  workbook.SaveAs("Output.xls");
}
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the excel application object.
  IApplication application = excelEngine.Excel;

  // Opening a workbook
  IWorkbook workbook = application.Workbooks.Open("Test.xls");
  IWorksheet sheet = workbook.Worksheets[0];

  //Check macro exist
  bool IsMacroEnabled = workbook.HasMacros;        

  //Save the workbook
  workbook.SaveAs("Output.xls");
}
Using excelEngine As ExcelEngine = New ExcelEngine()
  'Instantiate the excel application object.
  Dim application As IApplication = excelEngine.Excel

  'Opening a Workbook
  Dim workbook As IWorkbook = application.Workbooks.Open("Test.xls")
  Dim sheet As IWorksheet = workbook.Worksheets(0)

  'Check macro exist
  Dim IsMacroEnabled As Boolean = workbook.HasMacros            

  Save the workbook 
  workbook.SaveAs("Output.xls")
End Using

See Also