---
title: "在Java中使用VBA宏"
---


Visual BasicFor Applications(VBA)forMicrosoft Word是一种简单但功能强大的编程语言，可用于扩展功能。 Aspose.WordsAPI提供了三个类来访问VBA项目源代码:

- [VBAProject](https://reference.aspose.com/words/java/com.aspose.words/vbaproject/)类提供对VBA项目信息的访问
- [VBAModulesCollection](https://reference.aspose.com/words/java/com.aspose.words/vbamodulecollection/)类返回VBA项目模块的集合
- [VbaModule](https://reference.aspose.com/words/java/com.aspose.words/vbamodule/)类提供对VBA项目模块的访问

## 创建VBA项目

Aspose.WordsAPI提供[VbaProject](https://reference.aspose.com/words/java/com.aspose.words/document/#getVbaProject)属性以获取或设置文档中的VbaProject。

下面的代码示例演示如何创建VBA项目和VBA模块以及基本属性，例如Name和Type:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-WorkingWithVbaMacros-CreateVbaProject.java" >}}

## 读取宏

Aspose.Words还为用户提供了读取VBA宏的能力。

下面的代码示例演示如何从文档中读取VBA宏:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-WorkingWithVbaMacros-ReadVbaMacros.java" >}}

## 修改宏

使用Aspose.Words，用户可以修改VBA宏。

下面的代码示例演示如何使用[SourceCode](https://reference.aspose.com/words/java/com.aspose.words/vbamodule/#getSourceCode)属性修改VBA宏:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-WorkingWithVbaMacros-ModifyVbaMacros.java" >}}

## 克隆VBA项目

使用Aspose.Words也可以克隆VBA项目。

下面的代码示例演示如何使用创建现有项目副本的[Clone](https://reference.aspose.com/words/java/com.aspose.words/vbaproject/#deepClone)属性克隆VBA项目:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-WorkingWithVbaMacros-CloneVbaProject.java" >}}

## 克隆VBA模块

如果需要，您还可以克隆VBA模块。

下面的代码示例演示如何使用创建现有项目副本的[Clone](https://reference.aspose.com/words/java/com.aspose.words/vbaproject/#deepClone)属性克隆VBA模块。

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-loading_saving-WorkingWithVbaMacros-CloneVbaModule.java" >}}
