עבודה עם VBA Macros

Visual Basic בקשה (VBA) Microsoft Word היא שפת תכנות פשוטה אך עוצמתית שניתן להשתמש בה כדי להרחיב את הפונקציונליות. Aspose.Words API מספק שלוש כיתות כדי לקבל גישה לקוד המקור של פרויקט VBA:

  • The VBAProject המחלקה מספקת גישה למידע של פרויקט VBA
  • The VBAModulesCollection קבוצת VBA מחזירה את אוסף מודולי פרויקט VBA
  • The VbaModule שיעור מספק גישה למודול פרויקט VBA

יצירת פרויקט VBA

Aspose.Words API מספק VbaProject לרכוש או להגדיר VbaProject במסמך.

הדוגמה הקודית הבאה מראה כיצד ליצור פרויקט VBA ומודול VBA יחד עם תכונות בסיסיות e.g. שם וסוג:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
// Create a new VBA project.
VbaProject project = new VbaProject();
project.setName("AsposeProject");
doc.setVbaProject(project);
// Create a new module and specify a macro source code.
VbaModule module = new VbaModule();
module.setName("AsposeModule");
module.setType(VbaModuleType.PROCEDURAL_MODULE);
module.setSourceCode("New source code");
// Add module to the VBA project.
doc.getVbaProject().getModules().add(module);
doc.save(dataDir + "VbaProject_out.docm");

Read Macros

Aspose.Words מספק למשתמשים את היכולת לקרוא מאקרו VBA.

דוגמה לקוד הבא מראה כיצד לקרוא את VBA Macros מהמסמכים:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
for (VbaModule module : doc.getVbaProject().getModules()) {
System.out.println(module.getSourceCode());
}
doc.save(dataDir + "VbaProject_out.docm");

שינוי Macros

שימוש Aspose.Words, משתמשים יכולים לשנות מאקרו VBA.

דוגמה לקוד הבא מראה כיצד לשנות את VBA Macros באמצעות ה-VBA. SourceCode רכוש:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
String newSourceCode = "Test change source code";
// Choose a module, and set a new source code.
project.getModules().get(0).setSourceCode(newSourceCode);

Clone VBA פרויקט

עם Aspose.Words ניתן גם לשחזר פרויקטים של VBA.

הדוגמה הבאה לקוד ממחישה כיצד לשחזר את פרויקט VBA באמצעות פרויקט VBA. Clone נכסים שיוצרים עותק של הפרויקט הקיים:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
// Clone the whole project.
destDoc.setVbaProject(doc.getVbaProject().deepClone());
destDoc.save(dataDir + "output.docm");

Clone VBA מודול

ניתן גם לשחזר מודולי VBA במידת הצורך.

הדוגמה הבאה של הקוד מראה כיצד לשחזר את מודול VBA באמצעות ה- VBA. Clone רכוש שיוצר עותק של הפרויקט הקיים

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
destDoc.setVbaProject(new VbaProject());
// Clone a single module.
VbaModule copyModule = doc.getVbaProject().getModules().get("Module1").deepClone();
destDoc.getVbaProject().getModules().add(copyModule);
destDoc.save(dataDir + "output.docm");