إدارة رموز VBA لمصنف العمل ذو الماكرو الممكن تمكينه.

إضافة وحدة VBA في بايثون

يُنشئ رمز العينة التالي مصنف عمل جديد ويضيف وحدة VBA جديدة وكود الماكرو الجديد ويحفظ الإخراج بتنسيق XLSM. بمجرد فتحك لملف الإكسيل الناتج XLSM والنقر على أوامر تطوير > الأساسيات المرئية، سترى وحدة تسمى “الوحدة الاختبارية” وبداخلها سترى كود الماكرو التالي.

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

فيما يلي رمز العينة لإنشاء ملف إكسيل الناتج بتنسيق XLSM مع وحدة VBA وكود الماكرو.

from aspose.cells import SaveFormat, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create new workbook
workbook = Workbook()
# Access first worksheet
worksheet = workbook.worksheets[0]
# Add VBA Module
idx = workbook.vba_project.modules.add(worksheet)
# Access the VBA Module, set its name and codes
module = workbook.vba_project.modules[idx]
module.name = "TestModule"
module.codes = "Sub ShowMessage()" + "\r\n" + " MsgBox \"Welcome to Aspose!\"" + "\r\n" + "End Sub"
# Save the workbook
workbook.save(dataDir + "output_out.xlsm", SaveFormat.XLSM)

تعديل VBA أو Macro في بايثون

يقوم الرمز الخاص المعروض أدناه بتحميل ملف Excel المصدر الذي يحتوي على رمز VBA أو ماكرو التالي داخله

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

بعد تنفيذ نموذج Aspose.Cells لبايثون via .NET، سيتم تعديل كود VBA أو Macro بهذا الشكل

 Sub Button1_Click()

    MsgBox "This is Aspose.Cells message."

End Sub

يمكنك تنزيل ملف Excel المصدر وملف Excel الناتج من الروابط المعطاة.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create workbook object from source Excel file
workbook = Workbook(dataDir + "sample.xlsm")
# Change the VBA Module Code
for module in workbook.vba_project.modules:
code = module.codes
# Replace the original message with the modified message
code = code.replace("This is test message.", "This is Aspose.Cells message.")
module.codes = code
# Save the output Excel file
workbook.save(dataDir + "output_out.xlsm")

مواضيع متقدمة