VbaProject

VbaProject class

Provides access to VBA project information. A VBA project inside the document is defined as a collection of VBA modules.

To learn more, visit the Working with VBA Macros documentation article.

public class VbaProject

Constructors

NameDescription
VbaProject()Creates a blank VbaProject.

Properties

NameDescription
CodePage { get; set; }Gets or sets the VBA project’s code page.
IsProtected { get; }Shows whether the VbaProject is password protected.
IsSigned { get; }Shows whether the VbaProject is signed or not.
Modules { get; }Returns collection of VBA project modules.
Name { get; set; }Gets or sets VBA project name.
References { get; }Gets a collection of VBA project references.

Methods

NameDescription
Clone()Performs a copy of the VbaProject.

Examples

Shows how to access a document’s VBA project information.

Document doc = new Document(MyDir + "VBA project.docm");

// A VBA project contains a collection of VBA modules.
VbaProject vbaProject = doc.VbaProject;
Console.WriteLine(vbaProject.IsSigned
    ? $"Project name: {vbaProject.Name} signed; Project code page: {vbaProject.CodePage}; Modules count: {vbaProject.Modules.Count()}\n"
    : $"Project name: {vbaProject.Name} not signed; Project code page: {vbaProject.CodePage}; Modules count: {vbaProject.Modules.Count()}\n");

VbaModuleCollection vbaModules = doc.VbaProject.Modules;

Assert.AreEqual(vbaModules.Count(), 3);

foreach (VbaModule module in vbaModules)
    Console.WriteLine($"Module name: {module.Name};\nModule code:\n{module.SourceCode}\n");

// Set new source code for VBA module. You can access VBA modules in the collection either by index or by name.
vbaModules[0].SourceCode = "Your VBA code...";
vbaModules["Module1"].SourceCode = "Your VBA code...";

// Remove a module from the collection.
vbaModules.Remove(vbaModules[2]);

See Also