Ako na automatizáciu Microsoft Excel z jazyka Visual Basic.NET

Preklady článku Preklady článku
ID článku: 301982 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

SUHRN

Tento článok ukazuje ako vytvoriť automatizácie klient pre program Microsoft Excel pomocou jazyka Microsoft Visual Basic.NET.

DALSIE INFORMACIE

Automatizácia je proces, ktorý umožní aplikácií, ktoré sú napísané v jazykoch ako je Visual Basic programovo ovládať iné aplikácie. Automatizácia Excel umožňuje vykonávať akcie ako vytvoriť nový zošit, pridanie údajov do zošita alebo vytváranie grafov. S Excel a ďalších aplikáciách balíka Microsoft Office, prakticky všetky akcie že môžete vykonať manuálne pomocou používateľského rozhrania môže uskutočniť aj pomocou programovania pomocou automatizácie.

Program Excel vystavuje tomto programové funkčnosť prostredníctvom objektového modelu. Objektový model je kolekcia tried a metód, ktoré slúžia ako náprotivkami logické komponentov Excel. Napríklad, existuje Uplatňovanie objekt, Zošit objekt, a Funkcia pracovného hárka objekt, z ktorých každý obsahovať funkčnosť tých súčasti programu Excel. Na prístup k objektovému modelu jazyka Visual Basic.NET, môžete Nastavenie projektu odkazu do typu knižnice.

Tento článok ukazuje ako nastaviť správne projektu odkaz na program Excel knižnice typov pre Visual Základné.NET a poskytuje vzorky kód na automatizáciu programu Excel.

Vytvoriť automatizačných klientov programu Microsoft Excel

  1. Spustiť Microsoft Visual Studio.NET.
  2. Na Súbor ponuky, kliknite na tlačidloNové, a potom kliknite na tlačidlo Projekt. VyberteWindows aplikácie z projektu programu Visual Basic druhy. Form1 vytvára sa predvolene.
  3. Pridať odkaz na Programu Microsoft Excel objekt Knižnica. Chcete urobiť, postupujte nasledovne:
    1. Na Projekt ponuky, kliknite na tlačidlo Pridať Odkaz.
    2. Na COM kartu, vyhľadajte Objektová knižnica programu Microsoft Excel, a potom kliknite na tlačidlo Vyberte.

      Poznámka Microsoft Office 2003 obsahuje Primary Interop Assemblies (PIA). Microsoft Office XP nezahŕňa Pia, ale môžu byť stiahnuté. Ďalšie informácie o Office XP Pia, kliknite na tlačidlo nasledujúce číslo článku databázy Microsoft Knowledge Base:
      328912Microsoft Office XP primary objektovému assemblies (PIA) sú k dispozícii na prevzatie
    3. Kliknite na tlačidlo ok v Pridať Odkazy dialógové okno prijímať vaše výbery.
  4. Na Zobrazenie menu vyberteToolbox zobrazenie panela s nástrojmi a potom pridať tlačidlo Form1.
  5. Dvakrát kliknite na Button1. Okno kód pre zobrazí sa formulár.
  6. V okne kódu, vyhľadajte nasledujúci kód:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    Nahradiť predchádzajúci kód s nasledujúci kód:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
            Dim oXL As Excel.Application
            Dim oWB As Excel.Workbook
            Dim oSheet As Excel.Worksheet
            Dim oRng As Excel.Range
    
            ' Start Excel and get Application object.
            oXL = CreateObject("Excel.Application")
            oXL.Visible = True
    
            ' Get a new workbook.
            oWB = oXL.Workbooks.Add
            oSheet = oWB.ActiveSheet
    
            ' Add table headers going cell by cell.
            oSheet.Cells(1, 1).Value = "First Name"
            oSheet.Cells(1, 2).Value = "Last Name"
            oSheet.Cells(1, 3).Value = "Full Name"
            oSheet.Cells(1, 4).Value = "Salary"
    
            ' Format A1:D1 as bold, vertical alignment = center.
            With oSheet.Range("A1", "D1")
                .Font.Bold = True
                .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
            End With
    
            ' Create an array to set multiple values at once.
            Dim saNames(5, 2) As String
            saNames(0, 0) = "John"
            saNames(0, 1) = "Smith"
            saNames(1, 0) = "Tom"
            saNames(1, 1) = "Brown"
            saNames(2, 0) = "Sue"
            saNames(2, 1) = "Thomas"
            saNames(3, 0) = "Jane"
    
            saNames(3, 1) = "Jones"
            saNames(4, 0) = "Adam"
            saNames(4, 1) = "Johnson"
    
            ' Fill A2:B6 with an array of values (First and Last Names).
            oSheet.Range("A2", "B6").Value = saNames
    
            ' Fill C2:C6 with a relative formula (=A2 & " " & B2).
            oRng = oSheet.Range("C2", "C6")
            oRng.Formula = "=A2 & "" "" & B2"
    
            ' Fill D2:D6 with a formula(=RAND()*100000) and apply format.
            oRng = oSheet.Range("D2", "D6")
            oRng.Formula = "=RAND()*100000"
            oRng.NumberFormat = "$0.00"
    
            ' AutoFit columns A:D.
            oRng = oSheet.Range("A1", "D1")
            oRng.EntireColumn.AutoFit()
    
            ' Manipulate a variable number of columns for Quarterly Sales Data.
            Call DisplayQuarterlySales(oSheet)
    
            ' Make sure Excel is visible and give the user control
            ' of Excel's lifetime.
            oXL.Visible = True
            oXL.UserControl = True
    
            ' Make sure that you release object references.
            oRng = Nothing
            oSheet = Nothing
            oWB = Nothing
            oXL.Quit()
            oXL = Nothing
    
            Exit Sub
    Err_Handler:
            MsgBox(Err.Description, vbCritical, "Error: " & Err.Number)
        End Sub
    
        Private Sub DisplayQuarterlySales(ByVal oWS As Excel.Worksheet)
            Dim oResizeRange As Excel.Range
            Dim oChart As Excel.Chart
            Dim oSeries As Excel.Series
            Dim iNumQtrs As Integer
            Dim sMsg As String
            Dim iRet As Integer
    
    
            ' Determine how many quarters to display data for.
            For iNumQtrs = 4 To 2 Step -1
                sMsg = "Enter sales data for" & Str(iNumQtrs) & " quarter(s)?"
                iRet = MsgBox(sMsg, vbYesNo Or vbQuestion _
                   Or vbMsgBoxSetForeground, "Quarterly Sales")
                If iRet = vbYes Then Exit For
            Next iNumQtrs
    
            ' Starting at E1, fill headers for the number of columns selected.
            oResizeRange = oWS.Range("E1", "E1").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=""Q"" & COLUMN()-4 & CHAR(10) & ""Sales"""
    
            ' Change the Orientation and WrapText properties for the headers.
            oResizeRange.Orientation = 38
            oResizeRange.WrapText = True
    
            ' Fill the interior color of the headers.
            oResizeRange.Interior.ColorIndex = 36
    
            ' Fill the columns with a formula and apply a number format.
            oResizeRange = oWS.Range("E2", "E6").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=RAND()*100"
            oResizeRange.NumberFormat = "$0.00"
    
            ' Apply borders to the Sales data and headers.
            oResizeRange = oWS.Range("E1", "E6").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Borders.Weight = Excel.XlBorderWeight.xlThin
    
            ' Add a Totals formula for the sales data and apply a border.
            oResizeRange = oWS.Range("E8", "E8").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=SUM(E2:E6)"
            With oResizeRange.Borders(Excel.XlBordersIndex.xlEdgeBottom)
                .LineStyle = Excel.XlLineStyle.xlDouble
                .Weight = Excel.XlBorderWeight.xlThick
            End With
    
            ' Add a Chart for the selected data.
            oResizeRange = oWS.Range("E2:E6").Resize(ColumnSize:=iNumQtrs)
            oChart = oWS.Parent.Charts.Add
            With oChart
                .ChartWizard(oResizeRange, Excel.XlChartType.xl3DColumn, , Excel.XlRowCol.xlColumns)
                oSeries = .SeriesCollection(1)
                oSeries.XValues = oWS.Range("A2", "A6")
                For iRet = 1 To iNumQtrs
                    .SeriesCollection(iRet).Name = "=""Q" & Str(iRet) & """"
                Next iRet
                .Location(Excel.XlChartLocation.xlLocationAsObject, oWS.Name)
            End With
    
            ' Move the chart so as not to cover your data.
            With oWS.Shapes.Item("Chart 1")
                .Top = oWS.Rows(10).Top
                .Left = oWS.Columns(2).Left
            End With
    
            ' Free any references.
            oChart = Nothing
            oResizeRange = Nothing
        End Sub
    					
  7. Do hornej časti Form1.vb, pridajte nasledujúci kód:
    Imports Microsoft.Office.Core
    					

Test automatizačných klientov

  1. Stlačte kláves F5 stavať a spustite program.
  2. Vo formulári, kliknite na tlačidlo Button1. Program spustí program Excel a vyplnia údaje do nového hárka.
  3. Keď sa zobrazí výzva na zadanie štvrťročných údajov o predaji, kliknite na tlačidloáno. Graf, ktorý je prepojený s štvrťročných údajov sa pridá do Funkcia pracovného hárka.

ODKAZY

Pre viac informácií navštívte nasledujúce Microsoft Webová lokalita Developer Network (MSDN):
Microsoft Office rozvoja s Visual Studio
http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10) .aspx
Ďalšie informácie o programe Excel a jazyka Visual Basic, kliknite na nasledovné číslo článku zobrazte článok v databáze Microsoft Knowledge Base:
219151Automatizácia Microsoft Excel z programu Visual Basic

Vlastnosti

ID článku: 301982 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Kľúčové slová: 
kbpia kbautomation kbhowto kbmt KB301982 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:301982

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com