Applies ToMicrosoft Office Professional Edition 2003 Excel 2010

Σύνοψη

Κατά την αυτοματοποίηση ενός προϊόντος 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. Για περισσότερες πληροφορίες, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής βάσης:

282830 Η πρόσβαση μέσω προγραμματισμού σε Office XP VBA Project απορρίπτεται

Βήματα για τη δημιουργία του δείγματος

  1. Πρώτα, δημιουργήστε ένα νέο αρχείο κειμένου με το όνομα KbTest.bas (χωρίς την επέκταση .txt). Αυτή είναι η λειτουργική μονάδα κώδικα που θα εισαγάγουμε σε Excel κατά το χρόνο εκτέλεσης.

  2. Στο αρχείο κειμένου, προσθέστε τις ακόλουθες γραμμές κώδικα:

       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
  3. Αποθηκεύστε το αρχείο κειμένου στον κατάλογο C:\KbTest.bas και, στη συνέχεια, κλείστε το αρχείο.

  4. Ξεκινήστε Visual Basic και δημιουργήστε ένα τυπικό έργο. Η φόρμα1 δημιουργείται από προεπιλογή.

  5. Στο μενού Project, κάντε κλικ στην επιλογή Απαντήσεις και, στη συνέχεια, επιλέξτε την κατάλληλη έκδοση βιβλιοθήκης τύπων που σας επιτρέπει να χρησιμοποιήσετε την πρώιμη σύνδεση με το 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.

  6. Προσθέστε ένα κουμπί στο form1 και τοποθετήστε τον παρακάτω κώδικα στο πρόγραμμα χειρισμού για το συμβάν Click του κουμπιού:

       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
  7. Για Excel 2002 και για νεότερες εκδόσεις του Excel, πρέπει να ενεργοποιήσετε την πρόσβαση στο έργο VBA. Για να το κάνετε αυτό, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:

    • Στο Excel 2007, κάντε κλικ στο Κουμπί Microsoft Office και, στη συνέχεια, κάντε κλικ στο στοιχείο Επιλογές Excel. Κάντε κλικ στην επιλογή Κέντρο αξιοπιστίας και, στη συνέχεια, κάντε κλικ στην επιλογή Κέντρο αξιοπιστίας Ρυθμίσεις. Κάντε κλικ στην επιλογή Μακροεντολή Ρυθμίσεις, κάντε κλικ για να επιλέξετε το πλαίσιο ελέγχου Αξιόπιστη πρόσβαση στο μοντέλο αντικειμένου έργου VBA και, στη συνέχεια, κάντε κλικ στο κουμπί OK δύο φορές.

    • Στο Excel 2003 και σε παλαιότερες εκδόσεις του Excel, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή στο μενού Εργαλεία και, στη συνέχεια, κάντε κλικ στην επιλογή Ασφάλεια. Στο παράθυρο διαλόγου Ασφάλεια, κάντε κλικ στην καρτέλα Αξιόπιστες προελεύσεις και, στη συνέχεια, κάντε κλικ για να επιλέξετε το πλαίσιο ελέγχου Αξιόπιστη πρόσβαση σε Visual Basic Project.

  8. Εκτελέστε το έργο Visual Basic.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τον αυτοματισμό Office από Visual Basic, ανατρέξτε στην τοποθεσία υποστήριξης ανάπτυξης Office στην ακόλουθη διεύθυνση:

http://support.microsoft.com/ofd

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.