עבודה עם פקודות מאקרו VBA במסמכי Word באמצעות Python

Visual Basic for Applications (VBA) היא שפת תכנות רבת עוצמה המאפשרת לך להפוך משימות לאוטומטיות במסמכי Word. יתר על כן, אתה יכול לבצע משימות חוזרות עם פקודות מאקרו VBA די בקלות. במאמר זה תלמדו כיצד לעבוד עם פרויקטים ומודולים של VBA במסמכי MS Word. במיוחד, המאמר יעסוק כיצד ליצור, לשנות ולשכפל פקודות מאקרו VBA באופן תוכניתי ב- Python.

ספריית Python לעבודה עם פקודות מאקרו VBA של MS Word

כדי לעבוד עם מאקרו VBA בקובצי 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

# טען מסמך וורד.
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 עבור Python.

  • טען את מסמך Word באמצעות מחלקה Document.
  • קבל הפניה של VbaProject לאובייקט באמצעות המאפיין Document.vbaproject.
  • גש למודול VBA הרצוי באמצעות אינדקס ועדכן את קוד המקור שלו באמצעות מאפיין VbaProject.modules[int].sourcecode.
  • שמור את המסמך באמצעות שיטת Document.save().

דוגמת הקוד הבאה מראה כיצד לשנות מאקרו קיים של MS Word VBA באמצעות Python.

import aspose.words as aw

# טען מסמך וורד.
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

# טען מסמך מקור וורד.
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

# טען מסמך מקור וורד.
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 עבור Python ללא מגבלות הערכה.

סיכום

במאמר זה, למדת כיצד ליצור פקודות מאקרו VBA במסמכי MS Word באמצעות Python. יתר על כן, ראית כיצד לשנות או לשכפל מודולי VBA קיימים או פרויקטים באופן תכנותי. בנוסף, אתה יכול לחקור תכונות אחרות של Aspose.Words עבור Python באמצעות תיעוד. אם יהיו לך שאלות כלשהן, אל תהסס ליידע אותנו דרך הפורום שלנו.

ראה גם

מידע: אם אי פעם תצטרך לקבל מסמך Word ממצגת PowerPoint, תוכל להשתמש בממיר Aspose מצגת למסמך Word.