کار با ماکروهای 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"); |