סיכום
בעת הפיכת מוצר Office לאוטומטי מ- Visual Basic, ייתכן שיהיה שימושי להעביר חלק מהקוד למודול Microsoft Visual Basic for Applications (VBA) העשויים לפעול בתוך שטח התהליך של השרת. פעולה זו יכולה להגביר את מהירות הביצוע הכוללת עבור היישום שלך ולעזור להקל על בעיות אם השרת מבצע פעולה רק כאשר שיחה בתהליך.
מאמר זה מדגים כיצד להוסיף מודול VBA באופן דינאמי ליישום Office פועל מתוך Visual Basic ולאחר מכן להתקשר למאקרו כדי למלא גליון עבודה בתהליך.מידע נוסף
הדוגמה הבאה מדגימה הוספת מודול קוד Microsoft Excel, אך באפשרותך להשתמש באותה טכניקה עבור Word PowerPoint מכיוון ששניהם משלבים את אותו מנגנון VBA.
הדוגמה משתמשת בקובץ טקסט סטטי עבור מודול הקוד שנוסף Excel. ייתכן שתרצה לשקול להעביר את הקוד לקובץ משאב שברצונך לבצע הידור ליישום שלך ולאחר מכן לחלץ אותו לקובץ זמני בעת הצורך בזמן ריצה. פעולה זו ת להפוך את הפרוייקט לניתן לניהול יותר להפצה מחדש. החל מ- Microsoft Office XP, משתמש חייב להעניק גישה למודל האובייקטים של VBA לפני שכל קוד אוטומציה שנכתב כדי לטפל ב- VBA יעבוד. זוהי תכונת אבטחה חדשה עם Office XP. לקבלת מידע נוסף, עיין במאמר Knowledge base הבא:282830 תוכניתית Access ל- Office XP VBA Project נדחתה
שלבים לבניית הדוגמה
-
תחילה, צור קובץ טקסט חדש בשם KbTest.bas (ללא .txt הסיומת). זהו מודול הקוד שנוסף ל- Excel בזמן ריצה.
-
בקובץ הטקסט, הוסף את שורות הקוד הבאות:
Attribute VB_Name = "KbTest"
' Your Microsoft Visual Basic for Applications macro function takes 1 ' parameter, the sheet object that you are going to fill. Public Sub DoKbTest(oSheetToFill As Object) Dim i As Integer, j As Integer Dim sMsg As String For i = 1 To 100 For j = 1 To 10 sMsg = "Cell(" & Str(i) & "," & Str(j) & ")" oSheetToFill.Cells(i, j).Value = sMsg Next j Next i End Sub -
שמור את קובץ הטקסט במדריך הכתובות C:\KbTest.bas ולאחר מכן סגור את הקובץ.
-
התחל Visual Basic וצור פרוייקט רגיל. Form1 נוצר כברירת מחדל.
-
בתפריט Project, לחץ עלReferences ולאחר מכן בחר את גירסת ספריית המסמכים המתאימה המאפשרת לך להשתמש באיגוד מוקדם כדי Excel.
לדוגמה, בחר אחת מהאפשרויות הבאות:-
עבור Microsoft Office Excel 2007, בחר את הספריה 12.0.
-
עבור Microsoft Office Excel 2003, בחר את הספריה 11.0.
-
עבור Microsoft Excel 2002, בחר את הספריה 10.0.
-
עבור Microsoft Excel 2000, בחר את הספריה 9.0.
-
עבור Microsoft Excel 97, בחר את הספריה 8.0.
-
-
הוסף לחצן ל- Form1 ומקום את הקוד הבא במפעיל עבור אירוע הלחיצה של הלחצן:
Private Sub Command1_Click()
Dim oXL As Excel.Application Dim oBook As Excel.Workbook Dim oSheet As Excel.Worksheet Dim i As Integer, j As Integer Dim sMsg As String ' Create a new instance of Excel and make it visible. Set oXL = CreateObject("Excel.Application") oXL.Visible = True ' Add a new workbook and set a reference to Sheet1. Set oBook = oXL.Workbooks.Add Set oSheet = oBook.Sheets(1) ' Demo standard Automation from out-of-process, ' this routine simply fills in values of cells. sMsg = "Fill the sheet from out-of-process" MsgBox sMsg, vbInformation Or vbMsgBoxSetForeground For i = 1 To 100 For j = 1 To 10 sMsg = "Cell(" & Str(i) & "," & Str(j) & ")" oSheet.Cells(i, j).Value = sMsg Next j Next i ' You're done with the first test, now switch sheets ' and run the same routine via an inserted Microsoft Visual Basic ' for Applications macro. MsgBox "Done.", vbMsgBoxSetForeground Set oSheet = oBook.Sheets.Add oSheet.Activate sMsg = "Fill the sheet from in-process" MsgBox sMsg, vbInformation Or vbMsgBoxSetForeground ' The Import method lets you add modules to VBA at ' run time. Change the file path to match the location ' of the text file you created in step 3. oXL.VBE.ActiveVBProject.VBComponents.Import "C:\KbTest.bas" ' Now run the macro, passing oSheet as the first parameter oXL.Run "DoKbTest", oSheet ' You're done with the second test MsgBox "Done.", vbMsgBoxSetForeground ' Turn instance of Excel over to end user and release ' any outstanding object references. oXL.UserControl = True Set oSheet = Nothing Set oBook = Nothing Set oXL = Nothing End Sub -
עבור Excel 2002 ובגירסות מתקדמות יותר של Excel, עליך להפעיל את הגישה לפרוייקט VBA. לשם כך, השתמש באחת מהשיטות הבאות:
-
ב- Excel 2007, לחץ על לחצן Microsoft Office ולאחר מכן לחץ על Excel אפשרויות. לחץ על מרכז יחסי האמון ולאחר מכן לחץ על מרכז יחסי האמון הגדרות. לחץ על הגדרות מאקרו, לחץ כדי לבחור את תיבת הסימון Access אמון במודל האובייקטים של פרוייקט VBA ולאחר מכן לחץ על אישור פעמיים.
-
ב- Excel 2003 וב בגירסאות קודמות של Excel, הצבע על מאקרובתפריט כלים ולאחר מכן לחץ על אבטחה. בתיבת הדו-שיח אבטחה, לחץ על הכרטיסיה מקורות מהימנים ולאחר מכן לחץ כדי לבחור בתיבת הסימון Visual Basic Project אמון.
-
-
הפעל את Visual Basic הפרוייקט.
הפניות
לקבלת מידע נוסף אודות אוטומציה של Office מתוך Visual Basic, עיין באתר Office תמיכה בפיתוח בכתובת הבאה: