קוד vba לייצוא כל המודולים בבת אחת
-
קוד vba לייצוא מודולים
Sub ייצוא_מודולים() 'נוצר על ידי pcinfogmach Dim sourceDoc As Object ' מסמך מקור המכיל את המודולים Dim targetDoc As Object ' מסמך יעד להעתקת המודולים אליו Dim sourceModule As Object ' מודול מקור Dim targetModule As Object ' מודול יעד Dim fileDialog As Object ' דיאלוג לבחירת קובץ Dim savePath As String ' נתיב לשמירת המודולים המיוצאים Dim mysavePath As String ' נתיב לשמירת המודולים המיוצאים Dim saveFolder As Object ' דיאלוג לבחירת תיקייה ' יצירת דיאלוג לבחירת קובץ Set fileDialog = Application.fileDialog(msoFileDialogFilePicker) ' אפשרות לבחירת קובץ יחיד בלבד fileDialog.AllowMultiSelect = False ' הגדרת הכותרת והסינונים לדיאלוג fileDialog.Title = "בחר מסמך מקור" fileDialog.Filters.Clear fileDialog.Filters.Add "מסמכי וורד", "*.docm; *.dotm; *.dot" ' הצגת הדיאלוג ובדיקה אם נבחר קובץ If fileDialog.Show = -1 Then ' הגדרת הקובץ הנבחר כמסמך המקור Set sourceDoc = Documents.Open(fileDialog.SelectedItems(1)) ' יצירת דיאלוג לבחירת תיקיית יעד Set saveFolder = Application.fileDialog(msoFileDialogFolderPicker) ' הגדרת הכותרת לדיאלוג saveFolder.Title = "בחר תיקיית יעד" ' הצגת הדיאלוג ובדיקה אם נבחרה תיקייה If saveFolder.Show = -1 Then ' הגדרת התיקייה הנבחרת כנתיב השמירה savePath = saveFolder.SelectedItems(1) & Application.PathSeparator ' לולאה על כל מודול במסמך המקור For Each sourceModule In ActiveDocument.VBProject.VBComponents 'קבלת שם המודול Dim moduleName As String moduleName = sourceModule.Name ' בניית נתיב הקובץ לשמירת המודול המיוצא באמצעות השם המקורי If sourceModule.Type = 1 Or sourceModule.Type = 100 Then mysavePath = savePath & moduleName & ".bas" ElseIf sourceModule.Type = 2 Then mysavePath = savePath & moduleName & ".cls" ElseIf sourceModule.Type = 3 Then mysavePath = savePath & moduleName & ".frm" End If ' ייצוא המודול מהמסמך המקור באמצעות נתיב הקובץ sourceModule.Export mysavePath Next sourceModule ' סגירת המסמך המקור בלי שמירת שינויים sourceDoc.Close False End If End If End Sub
-
שמתי לב שיש בעיה הגירסאות מסויימות של וורד שהקוד מייצא עברית בגיבריש