Vpišite se z Microsoftovim
Vpišite se ali ustvarite račun.
Pozdravljeni,
Izberite drug račun.
Imate več računov
Izberite račun, s katerim se želite vpisati.

Povzetek

Pri avtomatizaciji izdelka Office iz Visual Basic bi bilo morda koristno, da del kode premaknete v modul Microsoft VBA (VBA), ki se lahko izvaja v prostoru procesa v strežniku. To lahko poveča skupno hitrost izvajanja aplikacije in pomaga odpraviti težave, če strežnik izvaja dejanje le med postopkom klica.

Ta članek prikazuje, kako dinamično dodate modul VBA v program, ki se izvaja Office programa Visual Basic, in nato pokličite makro, da zapolni delovni list v postopku.

Več informacij

Ta vzorec prikazuje vstavljanje modula kode v Microsoft Excel, vendar lahko uporabite enako tehniko za Word in PowerPoint, ker oba vključujeta isti mehanizem VBA.

Vzorec uporablja statično besedilno datoteko za modul kode, ki je vstavljen v Excel. Morda boste želeli premakniti kodo v datoteko vira, ki jo lahko zberejo v aplikaciji, in jo nato ekstrahitivti v začasno datoteko, ko jo potrebujete med izvajanjem. Tako bi bilo projekt mogoče lažje upravljati za ponovno porazdelitev.

Od Microsoft Office XP naprej mora uporabnik odobriti dostop do predmetnega modela VBA, preden bo delovala katera koli avtomatizacijska koda, ki je zapisana za spreminjanje kode VBA. To je nova varnostna funkcija s sistemom Office XP. Če želite več informacij, si oglejte ta članek v zbirki znanja:

282830 Programmatic Access to Office XP VBA Project is Denied

Steps to build the sample

  1. Najprej ustvarite novo besedilno datoteko z imenom KbTest.bas (brez .txt pripone). To je modul kode, ki ga bomo vstaviti v Excel med izvajanjem.

  2. V besedilno datoteko dodajte te vrstice kode:

       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. Shranite besedilno datoteko v imenik C:\KbTest.bas, nato pa zaprite datoteko.

  4. Začnite Visual Basic in ustvarite standardni projekt. Obrazec1 je privzeto ustvarjen.

  5. V Project meniju klikniteReferences, nato pa izberite ustrezno različico knjižnice vrst, ki omogoča uporabo predčasne vezave za Excel.

    Izberite na primer nekaj od tega:

    • Za Microsoft Office Excel 2007 izberite knjižnico 12.0.

    • Za Microsoft Office Excel 2003 izberite knjižnico 11.0.

    • Za Microsoft Excel 2002 izberite knjižnico 10.0.

    • Za Microsoft Excel 2000 izberite knjižnico 9.0.

    • Če Microsoft Excel 97, izberite knjižnico 8.0.

  6. Dodajte gumb v Obrazec1 in v rutino za obravnavo postavite to kodo za dogodek Click gumba:

       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. Za Excel 2002 in novejše različice Excel morate vklopiti dostop do projekta VBA. To naredite na enega od teh načinov:

    • V Excel 2007 kliknite gumb Microsoft Office, nato pa kliknite Excel možnosti. Kliknite Središče zaupanja in nato še Središče zaupanja Nastavitve. Kliknite Zavihek Nastavitve, potrdite polje Zaupaj dostopu do predmetnega modela projekta VBA in nato dvakrat kliknite V redu.

    • V Excel 2003 in starejših različicah Excel, v meniju Orodja pokažite na Makro in kliknite Varnost. V pogovornem oknu Varnost kliknite zavihek Zaupanja vredni viri, nato pa kliknite, da potrdite polje Zaupaj Visual Basic Project dostop do vsebine.

  8. Zaženite Visual Basic projekta.

Reference

Če želite več informacij o avtomatizaciji avtomatizacije Office iz Visual Basic glejte spletno mesto podpore za Office za razvoj na tem naslovu:

http://support.microsoft.com/ofd

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.

Vam je bila informacija v pomoč?

Kako ste zadovoljni s kakovostjo jezika?
Kaj je vplivalo na vašo izkušnjo?
Če pritisnete »Pošlji«, bomo vaše povratne informacije uporabili za izboljšanje Microsoftovih izdelkov in storitev. Vaš skrbnik za IT bo lahko zbiral te podatke. Izjavi o zasebnosti.

Zahvaljujemo se vam za povratne informacije.

×