HotXLS Docs

VBADefined method

Returns true if Workbook contains VBA code.

Syntax

function VBADefined:boolean;

Description

Use VBADefined before overwriting an existing workbook when your application must preserve files that contain macros. The method is a read-only check; it does not create, remove, or edit VBA modules.
In the classic XLS facade, a True result means that the workbook has a VBA project stream. Save the file with an Excel format that can keep VBA content, and avoid exporting it to text, HTML, or RTF if macro preservation is required.

Example

This example opens an existing workbook and checks whether it contains VBA code before saving it.

var
  Workbook: IXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create;
  try
    Workbook.Open('C:\Reports\Template.xls');

    if Workbook.VBADefined then
      ShowMessage('This workbook contains VBA code.');

    Workbook.SaveAs('C:\Reports\TemplateCopy.xls');
  finally
    Workbook := nil;
  end;
end;

See also