العمل مع VBA وحدات الماكرو

Visual Basic للتطبيقات (VBA) ل Microsoft Word هي لغة برمجة بسيطة ولكنها قوية يمكن استخدامها لتوسيع الوظائف. Aspose.Words API يوفر ثلاث فئات للوصول إلى VBA شفرة مصدر المشروع:

  • توفر فئة VBAProject الوصول إلى معلومات المشروع VBA
  • تقوم فئة VBAModulesCollection بإرجاع مجموعة وحدات المشروع VBA
  • توفر فئة VbaModule الوصول إلى وحدة المشروع VBA

إنشاء مشروع VBA

Aspose.Words API يوفر خاصية VbaProject للحصول على أو تعيين VbaProject في المستند.

يوضح مثال الكود التالي كيفية إنشاء مشروع VBA و VBA وحدة نمطية مع الخصائص الأساسية مثل الاسم والنوع:

// 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");

قراءة وحدات الماكرو

Aspose.Words كما يوفر للمستخدمين القدرة على قراءة VBA وحدات الماكرو.

يوضح مثال التعليمات البرمجية التالية كيفية قراءة VBA وحدات الماكرو من المستند:

// 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");

تعديل وحدات الماكرو

باستخدام Aspose.Words، يمكن للمستخدمين تعديل VBA وحدات الماكرو.

يوضح مثال التعليمات البرمجية التالية كيفية تعديل وحدات الماكرو 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);

استنساخ VBA مشروع

مع Aspose.Words من الممكن أيضا استنساخ 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");

استنساخ 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");