How to check whether an Excel document contains macro?
8 Dec 20232 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
FileStream input = new FileStream("Test.xls", FileMode.Open, FileAccess.ReadWrite);
IWorkbook workbook = application.Workbooks.Open(input);
IWorksheet sheet = workbook.Worksheets[0];
//Check macro exist
bool IsMacroEnabled = workbook.HasMacros;
// Save the workbook
FileStream output = new FileStream("Output.xls", FileMode.Create, FileAccess.ReadWrite);
workbook.SaveAs(output);
input.Close();
output.Close();
}
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