Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Kokkuvõte

Office-Visual Basic automaatsel käivitamisel võib olla kasulik teisaldada osa koodist Microsoft Visual Basic for Applicationsi (VBA) moodulisse, mida saab käitada serveri protsessiruumis. See võib suurendada rakenduse üldist käivitamiskiirust ja leevendada probleeme, kui server sooritab toimingu ainult siis, kui kõne tehakse protsessi käigus.

Selles artiklis kirjeldatakse, kuidas dünaamiliselt lisada VBA-moodulit Office rakendusele Visual Basic ja seejärel helistada makrole, et täita töölehe protsess.

Lisateave

Järgmine näide näitab koodimooduli sisestamist Microsoft Excel, kuid wordis ja wordis saate kasutada sama PowerPoint kuna mõlemad sisaldavad sama VBA-mootorit.

Näidis kasutab koodimooduli jaoks staatilist tekstifaili, mis lisatakse Excel. Võiksite kaaluda koodi teisaldamist ressursifaili, mille saate oma rakendusse kompileerida, ja seejärel ekstraktida ajutiseks failiks, kui seda on vaja käitusaja jooksul. See muudaks projekti taasjaotuse jaoks hallatavamaks.

Alates Microsoft Office XP-st peab kasutaja vba-objektimudelile juurdepääsu andma, enne kui VBA-ga manipuleerimiseks kirjutatud automatiseerimiskood töötab. See on uus turbefunktsioon, mis Office XP-ga. Lisateabe saamiseks lugege järgmist teabebaasi artiklit:

282830 Programmatic Access to Office XP VBA Project on keelatud

Näidiste ettevalmistamine

  1. Esmalt looge uus tekstifail nimega KbTest.bas (ilma .txt laiendita). See on koodimoodul, mille lisame Excel käitusajaga.

  2. Lisage tekstifaili järgmised koodiread.

       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. Salvestage tekstifail kausta C:\KbTest.bas ja sulgege fail.

  4. Käivitage Visual Basic ja looge standardprojekt. Form1 luuakse vaikimisi.

  5. Klõpsake ProjectkäskuReferences ja valige seejärel sobiv teegi tüüp, mille abil saate kasutada varajast sidumist Excel.

    Näiteks valige üks järgmistest.

    • Kui Microsoft Office Excel 2007, valige teek 12.0.

    • Kui Microsoft Office Excel 2003, valige teek 11.0.

    • Kui Microsoft Excel 2002, valige teek 10.0.

    • Kui Microsoft Excel 2000, valige teek 9,0.

    • Kui Microsoft Excel 97, valige teek 8,0.

  6. Lisage nupp vormile Form1 ja paigutage nupu klõpsusündmuse käitlejasse järgmine kood.

       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 ja uuemate versioonide Excel peate sisse lülitama juurdepääsu VBA-projektile. Selleks kasutage ühte järgmistest meetoditest.

    • Klõpsake Excel 2007 nuppu Microsoft Office ja seejärel nuppu Excel Suvandid. Klõpsake nuppu Usalduskeskus ja seejärel käsku Usalduskeskus Sätted. Klõpsake Sätted makro, märkige ruut Usalda juurdepääsu VBA projekti objektimudelile ja seejärel klõpsake kaks korda nuppu OK.

    • Valige Excel 2003 ja varasemates versioonides Excel menüü Tööriistad käsk Makro ja seejärel klõpsake nuppu Turve. Klõpsake dialoogiboksis Turve vahekaarti Usaldusväärsed allikad ja märkige ruut Usalda juurdepääsu Visual Basic Project.

  8. Käivitage Visual Basic projekt.

Viited

Lisateavet Office Visual Basic kohta leiate Office veebisaidilt:

http://support.microsoft.com/ofd

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×