ทำงานกับ VBA Macros ในเอกสาร Word โดยใช้ Python

Visual Basic for Applications (VBA) เป็นภาษาโปรแกรมที่มีประสิทธิภาพซึ่งช่วยให้คุณทำงานอัตโนมัติในเอกสาร Word ยิ่งไปกว่านั้น คุณสามารถทำงานซ้ำ ๆ ด้วยแมโคร VBA ได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีการทำงานกับโครงการและโมดูล VBA ในเอกสาร MS Word โดยเฉพาะอย่างยิ่ง บทความจะกล่าวถึงวิธีการสร้าง แก้ไข และโคลนแมโคร VBA โดยทางโปรแกรมใน Python

Python Library เพื่อทำงานกับ MS Word VBA Macros

ในการทำงานกับ VBA Macros ในไฟล์ Word เราจะใช้ Aspose.Words for Python เป็นไลบรารีที่มีประสิทธิภาพสำหรับการสร้างและจัดการเอกสาร Word จากภายในแอปพลิเคชัน Python คุณสามารถติดตั้งไลบรารีในแอปพลิเคชันของคุณได้จาก PyPI โดยใช้คำสั่ง pip ต่อไปนี้

pip install aspose-words

สร้างมาโคร VBA ในเอกสาร MS Word ใน Python

ต่อไปนี้เป็นขั้นตอนในการสร้างแมโคร VBA ในไฟล์ MS Word DOCM โดยใช้ Python

  • โหลดเอกสาร Word หรือสร้างเอกสารใหม่โดยใช้คลาส Document
  • สร้างวัตถุของคลาส VbaProject
  • ตั้งชื่อของโครงการโดยใช้คุณสมบัติ VbaProject.name
  • กำหนดโครงการให้กับคุณสมบัติ Document.vbaproject
  • สร้างวัตถุของคลาส VbaModule
  • ตั้งชื่อและประเภทของโมดูลโดยใช้คุณสมบัติ VbaModule.name และ VbaModule.type ตามลำดับ
  • ตั้งค่าซอร์สโค้ดโดยใช้คุณสมบัติ VbaModule.sourcecode
  • เพิ่มโมดูลในโครงการ VBA ของเอกสารโดยใช้เมธอด Document.vbaproject.modules.add(VbaModule)
  • บันทึกเอกสารโดยใช้เมธอด Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างแมโคร VBA ในเอกสาร DOCM โดยใช้ Python

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 ใน Python

คุณยังสามารถเข้าถึงและแก้ไขแมโคร VBA ที่มีอยู่ในเอกสาร Word ได้อย่างราบรื่น ขั้นตอนต่อไปนี้จะสาธิตวิธีการใช้ Aspose.Words for Python

  • โหลดเอกสาร Word โดยใช้คลาส Document
  • รับการอ้างอิงของ VbaProject ในวัตถุโดยใช้คุณสมบัติ Document.vbaproject
  • เข้าถึงโมดูล VBA ที่ต้องการโดยใช้ดัชนีและอัปเดตซอร์สโค้ดโดยใช้คุณสมบัติ VbaProject.modules[int].sourcecode
  • บันทึกเอกสารโดยใช้เมธอด Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแก้ไขแมโคร MS Word VBA ที่มีอยู่โดยใช้ Python

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 โดยใช้ Python

ในบางกรณี คุณอาจต้องโคลนโมดูล VBA หรือโครงการ VBA ทั้งหมดจากเอกสาร Word หนึ่งไปยังอีกเอกสารหนึ่ง เพื่อให้บรรลุเป้าหมายนี้ Aspose.Words for Python ช่วยให้คุณสร้างโคลนได้อย่างง่ายดาย ส่วนต่อไปนี้ครอบคลุมวิธีการโคลนโมดูล VBA หรือโครงการ VBA

โคลนโมดูล VBA

ต่อไปนี้เป็นขั้นตอนในการสร้างโคลนของโมดูล VBA จากเอกสาร DOCM หนึ่งไปยังอีกเอกสารหนึ่งโดยใช้ Python

  • โหลดเอกสาร Word ต้นฉบับโดยใช้คลาส Document
  • โหลดเอกสาร Word ปลายทางโดยใช้คลาส Document
  • สร้าง VbaProject สำหรับเอกสาร Word ปลายทาง
  • รับโคลนของโมดูล VBA จากเอกสาร Word ต้นทางไปยังวัตถุโดยใช้เมธอด Document.vbaproject.modules.getbyname(string).clone()
  • เพิ่มโมดูลโคลนลงในเอกสารปลายทางโดยใช้เมธอด Document.vbaproject.modules.add(VbaModule)
  • บันทึกเอกสารปลายทางโดยใช้เมธอด Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการโคลนโมดูล MS Word VBA ใน Python

import aspose.words as aw

# โหลดเอกสาร Word ต้นฉบับ
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 ใน Python

  • โหลดเอกสาร Word ต้นฉบับโดยใช้คลาส Document
  • โหลดเอกสาร Word ปลายทางโดยใช้คลาส Document
  • รับโคลนของโครงการ VBA จากเอกสารต้นทางโดยใช้เมธอด Document.vbaproject.clone() และเพิ่มไปยังเอกสารปลายทางโดยใช้คุณสมบัติ Document.vbaproject
  • บันทึกเอกสารปลายทางโดยใช้เมธอด Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการโคลนโครงการ VBA จากเอกสาร Word หนึ่งไปยังอีกเอกสารหนึ่งใน Python

import aspose.words as aw

# โหลดเอกสาร Word ต้นฉบับ
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 for Python ได้โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีสร้างแมโคร VBA ในเอกสาร MS Word โดยใช้ Python นอกจากนี้ คุณได้เห็นวิธีการแก้ไขหรือโคลนโมดูลหรือโครงการ VBA ที่มีอยู่โดยทางโปรแกรม นอกจากนี้ คุณสามารถสำรวจคุณสมบัติอื่นๆ ของ Aspose.Words for Python โดยใช้ เอกสารประกอบ ในกรณีที่คุณมีคำถามใดๆ โปรดแจ้งให้เราทราบผ่านทาง ฟอรัม ของเรา

ดูสิ่งนี้ด้วย

ข้อมูล: หากคุณต้องการรับเอกสาร Word จากงานนำเสนอ PowerPoint คุณสามารถใช้ตัวแปลง Aspose Presentation to Word Document ได้