با ماکروهای VBA در اسناد Word با استفاده از پایتون کار کنید

Visual Basic for Applications (VBA) یک زبان برنامه نویسی قدرتمند است که به شما امکان می دهد وظایف در اسناد Word را خودکار کنید. علاوه بر این، می توانید کارهای تکراری را با ماکروهای VBA به راحتی انجام دهید. در این مقاله با نحوه کار با پروژه ها و ماژول های VBA در اسناد MS Word آشنا می شوید. به ویژه، این مقاله نحوه ایجاد، اصلاح و کلون ماکروهای VBA را به صورت برنامه‌نویسی در پایتون پوشش می‌دهد.

کتابخانه پایتون برای کار با ماکروهای MS Word VBA

برای کار با ماکرو VBA در فایل‌های Word، از Aspose.Words برای پایتون استفاده می‌کنیم. این یک کتابخانه قدرتمند برای ایجاد و دستکاری اسناد Word از داخل برنامه های پایتون است. با استفاده از دستور pip زیر می توانید کتابخانه را در برنامه خود از PyPI نصب کنید.

pip install aspose-words

ماکرو VBA را در یک سند MS Word در پایتون ایجاد کنید

در زیر مراحل ایجاد یک ماکرو VBA در فایل MS Word DOCM با استفاده از پایتون آمده است.

  • سند Word را بارگیری کنید یا با استفاده از کلاس Document یک سند جدید ایجاد کنید.
  • یک شی از کلاس VbaProject ایجاد کنید.
  • نام پروژه را با استفاده از ویژگی VbaProject.name تنظیم کنید.
  • پروژه را به ویژگی Document.vbaproject اختصاص دهید.
  • یک شی از کلاس VbaModule ایجاد کنید.
  • نام و نوع ماژول را به ترتیب با استفاده از ویژگی های VbaModule.name و VbaModule.type تنظیم کنید.
  • کد منبع را با استفاده از ویژگی VbaModule.sourcecode تنظیم کنید.
  • ماژول را با استفاده از روش Document.vbaproject.modules.add(VbaModule) به پروژه VBA سند اضافه کنید.
  • سند را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه ایجاد یک ماکرو VBA را در یک سند DOCM با استفاده از پایتون نشان می دهد.

import aspose.words as aw

# سند Word را بارگیری کنید.
doc = aw.Document("document.docm")

# پروژه VBA ایجاد کنید
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# یک ماژول جدید ایجاد کنید و یک کد منبع ماکرو را مشخص کنید.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# ماژول را به پروژه VBA اضافه کنید.
doc.vba_project.modules.add(module)

# ذخیره سند
doc.save("create_vba_project.docm")

ماکرو VBA را در یک سند Word در پایتون تغییر دهید

همچنین می‌توانید به ماکروهای VBA موجود در اسناد Word دسترسی داشته باشید و آنها را تغییر دهید. مراحل زیر نحوه دستیابی به این هدف را با استفاده از Aspose.Words برای پایتون نشان می دهد.

  • سند Word را با استفاده از کلاس Document بارگیری کنید.
  • با استفاده از ویژگی Document.vbaproject مرجع VbaProject را به یک شیء دریافت کنید.
  • با استفاده از فهرست به ماژول VBA مورد نظر دسترسی پیدا کنید و کد منبع آن را با استفاده از ویژگی VbaProject.modules[int].sourcecode به روز کنید.
  • سند را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه اصلاح یک ماکرو MS Word VBA موجود با استفاده از پایتون را نشان می دهد.

import aspose.words as aw

# سند Word را بارگیری کنید.
doc = aw.Document("document.docm")

# دریافت مرجع پروژه VBA.
project = doc.vba_project

# کد منبع را به روز کنید.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# ذخیره سند
doc.save("modify_vba_macros.docm")

کلون VBA ماکرو در یک سند Word با استفاده از پایتون

در موارد خاص، ممکن است لازم باشد یک ماژول VBA یا کل پروژه VBA را از یک سند Word به سند دیگر شبیه سازی کنید. برای رسیدن به این هدف، Aspose.Words برای پایتون به شما اجازه می دهد تا به راحتی کلون ها را ایجاد کنید. بخش های زیر نحوه شبیه سازی یک ماژول VBA یا یک پروژه VBA را پوشش می دهد.

یک ماژول VBA را شبیه سازی کنید

مراحل زیر برای ایجاد یک کلون از یک ماژول VBA از یک سند DOCM به سند دیگر با استفاده از پایتون است.

  • سند منبع Word را با استفاده از کلاس Document بارگیری کنید.
  • سند Word مقصد را با استفاده از کلاس Document بارگیری کنید.
  • یک سند VbaProject برای مقصد Word ایجاد کنید.
  • با استفاده از روش Document.vbaproject.modules.getbyname(string).clone() کلون ماژول VBA را از سند Word منبع به یک شیء دریافت کنید.
  • ماژول کلون شده را با استفاده از روش Document.vbaproject.modules.add(VbaModule) به سند مقصد اضافه کنید.
  • سند مقصد را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه کلون کردن یک ماژول MS Word VBA را در پایتون نشان می دهد.

import aspose.words as aw

# سند ورد منبع را بارگیری کنید.
doc = aw.Document("document.docm")

# سند Word مقصد را بارگیری کنید.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# ماژول VBA را کلون کنید.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# ذخیره سند
destDoc.save("clone_vba_module.docm")

کلون کردن پروژه VBA

مراحل زیر برای شبیه سازی پروژه MS Word VBA در پایتون آمده است.

  • سند منبع Word را با استفاده از کلاس Document بارگیری کنید.
  • سند Word مقصد را با استفاده از کلاس Document بارگیری کنید.
  • با استفاده از روش Document.vbaproject.clone() کلون پروژه VBA را از سند مبدا دریافت کنید و با استفاده از ویژگی Document.vbaproject آن را به سند مقصد اضافه کنید.
  • سند مقصد را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه کلون کردن یک پروژه VBA را از یک سند Word به سند دیگر در پایتون نشان می دهد.

import aspose.words as aw

# سند ورد منبع را بارگیری کنید.
doc = aw.Document("document.docm")

# سند Word مقصد را بارگیری کنید.
destDoc = aw.Document("dest_document.docm")

# کلون پروژه VBA.
destDoc.vba_project = doc.vba_project.clone() 

# ذخیره سند
destDoc.save("clone_vba_module.docm")

مجوز API رایگان دریافت کنید

می توانید برای استفاده از Aspose.Words برای پایتون بدون محدودیت ارزیابی، مجوز موقت دریافت کنید.

نتیجه

در این مقاله نحوه ایجاد ماکروهای VBA در اسناد MS Word با استفاده از پایتون را یاد گرفتید. علاوه بر این، نحوه تغییر یا شبیه‌سازی ماژول‌ها یا پروژه‌های VBA موجود را به صورت برنامه‌ریزی دیده‌اید. علاوه بر این، می‌توانید سایر ویژگی‌های Aspose.Words برای Python را با استفاده از اسناد کاوش کنید. در صورت داشتن هرگونه سوال، از طریق [تالار گفتمان7 ما را در جریان بگذارید.

همچنین ببینید

اطلاعات: اگر نیاز به دریافت یک سند Word از یک ارائه پاورپوینت دارید، می توانید از مبدل Aspose Presentation to Word Document استفاده کنید.