Utwórz aktualizację VBA w programie Word Java

Często dokumenty programu Word zawierają kod Visual Basic for Applications (VBA), który automatyzuje zadania i zwiększa funkcjonalność dokumentu. Jeśli jesteś programistą Java, możesz zastanawiać się, jak wchodzić w interakcje z kodem VBA i modyfikować go w dokumentach programu Word. Dlatego w tym poście na blogu przyjrzymy się, jak tworzyć i modyfikować kod VBA w dokumentach programu Word w aplikacji Java.

Biblioteka Java do pracy z VBA w dokumentach Word

Aspose.Words for Java to biblioteka umożliwiająca tworzenie, manipulowanie i renderowanie dokumentów programu Microsoft Word bez konieczności instalowania programu Microsoft Word. Zapewnia szeroką gamę funkcji do pracy z dokumentami Word, w tym czytania, pisania i modyfikowania ich zawartości. Dodatkowo biblioteka umożliwia pracę z kodem VBA osadzonym w dokumentach Worda, co może być niezwykle przydatne przy automatyzacji zadań i dodawaniu interaktywności do dokumentów.

Możesz pobrać bibliotekę lub zainstalować ją, korzystając z poniższej konfiguracji maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>23.8</version>
    <classifier>jdk17</classifier>
</dependency>

Utwórz makro VBA w dokumencie programu Word w Javie

Aspose.Words udostępnia następujące klasy do pracy z kodem VBA w dokumentach Word:

Przyjrzyjmy się krokom wymaganym do utworzenia makra VBA w dokumencie Word.

  • Najpierw załaduj dokument Worda lub utwórz nowy, korzystając z klasy Document.
  • Następnie utwórz obiekt klasy VbaProject, ustaw jego nazwę i przypisz do dokumentu za pomocą metody setVbaProject().
  • Utwórz obiekt klasy VbaModule i ustaw jego nazwę, typ i kod źródłowy.
  • Dodaj moduł do projektu za pomocą metody Document.getVbaProject().getModules().add(VbaModule).
  • Na koniec zapisz dokument programu Word przy użyciu metody Document.save().

Poniższy fragment kodu pokazuje, jak utworzyć moduł VBA w dokumencie programu Word w Javie.

// Kompletne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-words/Aspose.Words-for-Java
// Załaduj dokument
Document doc = new Document("document.docm");

// Utwórz nowy projekt VBA
VbaProject project = new VbaProject();
project.setName("AsposeProject");
doc.setVbaProject(project);

// Utwórz nowy moduł i określ kod źródłowy makra
VbaModule module = new VbaModule();
module.setName("AsposeModule");
module.setType(VbaModuleType.PROCEDURAL_MODULE);
module.setSourceCode("New source code");

// Dodaj moduł do projektu VBA
doc.getVbaProject().getModules().add(module);

// Zapisz dokument
doc.save("updated.docm");

Odczytaj makro VBA z dokumentu programu Word

Możesz uzyskać dostęp do istniejących makr VBA i je odczytać z dokumentu programu Word. W tym celu należy załadować dokument i uzyskać dostęp do kolekcji modułów w projekcie VBA. Poniżej znajdują się kroki umożliwiające odczytanie wszystkich makr VBA w dokumencie programu Word.

  • Załaduj dokument programu Word przy użyciu klasy Document.
  • Uzyskaj dostęp do kolekcji modułów VBA za pomocą metody Document.getVbaProject().getModules().
  • Użyj klasy VbaModule, aby odczytać każdy moduł VBA w projekcie.

Poniższy fragment kodu pokazuje, jak czytać moduły VBA z dokumentu Word w Javie.

// Załaduj dokument
Document doc = new Document("document.docm");

// Przeczytaj kod źródłowy VBA
for (VbaModule module : doc.getVbaProject().getModules()) {
    System.out.println(module.getSourceCode());
}

Zaktualizuj makro VBA w dokumencie programu Word

Jeśli zajdzie potrzeba aktualizacji kodu źródłowego lub innych informacji modułu VBA, możesz to zrobić bez wysiłku. Wystarczy uzyskać dostęp do żądanego modułu VBA z kolekcji i zmodyfikować go w razie potrzeby. Poniżej przedstawiono kroki aktualizacji makra VBA w dokumencie programu Word.

  • Najpierw załaduj dokument Word przy użyciu klasy Document.
  • Uzyskaj dostęp do kolekcji modułów VBA za pomocą metody Document.getVbaProject().getModules().
  • Uzyskaj odwołanie do żądanego makra VBA w obiekcie VbaModule.
  • Zaktualizuj moduł VBA za pomocą obiektu VbaModule.

Poniższy przykładowy kod pokazuje, jak zaktualizować makro VBA w dokumencie programu Word przy użyciu języka Java.

// Kompletne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-words/Aspose.Words-for-Java
// Załaduj dokument
Document doc = new Document("document.docm");

// Uzyskaj referencje projektu VBA
VbaProject project = doc.getVbaProject();

String newSourceCode = "Test change source code";

// Wybierz moduł i ustaw nowy kod źródłowy
project.getModules().get(0).setSourceCode(newSourceCode);

// Zapisz dokument
doc.save("output.docm");

Klonuj kod VBA z dokumentu Word

Aspose.Words for Java umożliwia także klonowanie makr VBA z jednego dokumentu programu Word do drugiego. Możesz sklonować cały projekt VBA lub konkretny moduł VBA. Przyjrzyjmy się, jak skopiować VBA w obu przypadkach.

Klonuj projekt VBA z dokumentu Word

Oto kroki, aby sklonować kompletny projekt VBA w dokumencie programu Word.

  • Załaduj źródłowe i docelowe dokumenty programu Word przy użyciu klasy Document.
  • Wywołaj metodę target.setVbaProject(source.getVbaProject().deepClone()) w celu sklonowania projektu VBA z dokumentu źródłowego do docelowego.
  • Zapisz dokument docelowy za pomocą metody Document.save().

Poniższy fragment kodu klonuje projekt VBA z jednego dokumentu programu Word do innego.

// Załaduj dokument źródłowy
Document doc = new Document("source.docm");
VbaProject project = doc.getVbaProject();

// Załaduj dokument docelowy
Document destDoc = new Document("target.docm");

// Sklonuj cały projekt
destDoc.setVbaProject(doc.getVbaProject().deepClone());

// Zapisz dokument
destDoc.save("output.docm");

Klonuj moduł VBA z dokumentu Word

Poniżej przedstawiono kroki klonowania modułu VBA z jednego dokumentu programu Word do innego w języku Java.

  • Załaduj źródłowe i docelowe dokumenty programu Word przy użyciu klasy Document.
  • Uzyskaj klon żądanego modułu VBA w obiekcie VbaModule za pomocą metody Document.getVbaProject().getModules().get(string Name).deepClone().
  • Dodaj sklonowany moduł VBA do dokumentu docelowego za pomocą metody target.getVbaProject().getModules().add(VbaModule).
  • Zapisz dokument docelowy za pomocą metody Document.save().

Poniższy fragment kodu pokazuje, jak sklonować moduł VBA z jednego dokumentu programu Word do drugiego.

// Kompletne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-words/Aspose.Words-for-Java

// Załaduj dokument źródłowy
Document doc = new Document("source.docm");
VbaProject project = doc.getVbaProject();

// Załaduj dokument docelowy
Document destDoc = new Document("target.docm");

// Utwórz nowy projekt VBA
destDoc.setVbaProject(new VbaProject());

// Sklonuj pojedynczy moduł
VbaModule copyModule = doc.getVbaProject().getModules().get("Module1").deepClone();
destDoc.getVbaProject().getModules().add(copyModule);

// Zapisz zaktualizowany dokument
destDoc.save("output.docm");

Zdobądź bezpłatną licencję

Zdobądź bezpłatną licencję tymczasową, aby w pełni korzystać z biblioteki Java Word bez żadnych ograniczeń ewaluacyjnych.

Zasoby

Poniżej znajduje się kilka przydatnych łączy umożliwiających zapoznanie się z naszą biblioteką edytorów tekstu Java:

Wniosek

Aspose.Words for Java zapewnia wydajne i elastyczne rozwiązanie do tworzenia i modyfikowania kodu VBA w dokumentach Word przy użyciu języka Java. Niezależnie od tego, czy chcesz tworzyć interaktywne dokumenty od podstaw, czy ulepszać istniejące za pomocą funkcjonalności VBA, ta biblioteka ułatwia pracę z dokumentami programu Word i automatyzację zadań.

W tym poście na blogu zamieściliśmy przewodnik krok po kroku dotyczący pracy z markerami VBA w dokumentach programu Word z poziomu aplikacji Java. Instalując bibliotekę i postępując zgodnie ze wskazówkami, możesz łatwo programowo manipulować kodem VBA.

Zobacz też