Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.

Rezime

Prilikom automatizovanja Kancelarija proizvoda iz sistema Visual Basic, može biti korisno da premestite deo koda u modul Microsoft Visual Basic for Applications (VBA) koji može da se pokreće unutar procesnog prostora servera. To može poboljšati ukupnu brzinu izvršavanja za aplikaciju i pomoći da se reše problemi ako server izvršava radnju samo kada je poziv u toku.

Ovaj članak pokazuje kako da dinamički dodate VBA modul u pokrenutu Kancelarija aplikaciju iz Visual Basic, a zatim pozovete makro da biste popunili radni list u procesu.

Više informacija

Sledeći primer pokazuje umetanje modula koda u Microsoft Excel, ali možete da koristite istu tehniku za Word i PowerPoint jer oba koriste istu VBA mašinu.

Uzorak koristi statičnu tekstualnu datoteku za modul koda koji se umeće u Excel. Možda bi trebalo da razmotrite premeštanje koda u datoteku resursa koju možete da kompajlelite u aplikaciju, a zatim da izdvojite u privremenu datoteku kada je to potrebno u vreme početka. To bi projekat činio podloženijim upravljanju za ponudnu distribuciju.

Počevši od Microsoft kancelarija XP, korisnik mora da odobri pristup VBA objektnom modelu da bi bilo koji kôd za automatizaciju napisan da bi manipulisao VBA sistemom. Ovo je nova bezbednosna funkcija sa operativnim Kancelarija XP. Dodatne informacije potražite u sledećem članku baze znanja:

282830 Programski pristup programskim Kancelarija XP VBA Project je odbijen

Steps to build the sample

  1. Prvo kreirajte novu tekstualnu datoteku pod imenom KbTest.bas (bez oznake tipa .txt formata). Ovo je modul koda koji umećemo u Excel vreme početka.

  2. U tekstualnoj datoteci dodajte sledeće redove koda:

       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. Sačuvajte tekstualnu datoteku u direktorijumu C:\KbTest.bas, a zatim zatvorite datoteku.

  4. Pokrenite Visual Basic i kreirajte standardni projekat. Obrazac1 se podrazumevano kreira.

  5. U meniju Project izaberite stavkuReferences , a zatim izaberite odgovarajuću verziju biblioteke tipova koja vam omogućava da koristite rano povezivanje da biste Excel.

    Na primer, izaberite jednu od sledećih opcija:

    • Na Microsoft kancelarija Excel 2007 izaberite biblioteku 12.0.

    • Za Microsoft kancelarija Excel 2003 izaberite biblioteku 11.0.

    • Na Microsoft Excel 2002 izaberite biblioteku 10.0.

    • Na Microsoft Excel 2000 izaberite biblioteku 9.0.

    • Na Microsoft Excel 97 izaberite biblioteku 8.0.

  6. Dodajte dugme u obrazac1 i postavite sledeći kôd na rukovalac za događaj Click dugmeta:

       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 i novije Excel, morate da uključite pristup VBA projektu. Da biste to uradio, koristite jedan od sledećih metoda:

    • U Excel 2007 kliknite na dugme "Microsoft kancelarija", a zatim izaberite stavku Excel opcije. Izaberite stavku Centar za pouzdanost, a zatim stavku Centar Postavke. Izaberite stavku Makro Postavke, potvrdite izbor u polju za potvrdu Veruj pristupu objektnom modelu VBA projekta, a zatim kliknite dvaput na dugme U redu.

    • U Excel 2003 i u prethodnim verzijama programa Excel postavite pokazivač na stavku Makro u meniju Alatke, a zatim izaberite stavku Bezbednost. U dijalogu Bezbednost izaberite karticu Pouzdani izvori, a zatim potvrdite izbor u polju za potvrdu Imaj poverenja u Visual Basic Project pristup.

  8. Pokrenite Visual Basic projekat.

Reference

Dodatne informacije o automatizovanju Kancelarija podataka Visual Basic potražite na lokaciji Kancelarija razvojne podrške na sledećoj adresi:

http://support.microsoft.com/ofd

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×