Cara untuk mengotomatisasi Microsoft Excel dari Visual Basic .NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 301982 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Ringkasan

Artikel ini menunjukkan bagaimana untuk membuat sebuah otomatisasi klien untuk Microsoft Excel dengan menggunakan Microsoft Visual Basic .NET.

Informasi lebih lanjut

Otomatisasi adalah sebuah proses yang memungkinkan aplikasi yang ditulis dalam bahasa seperti Visual Basic untuk pemrograman mengendalikan aplikasi lain. Otomatisasi untuk Excel memungkinkan Anda untuk melakukan tindakan seperti pembuatan buku kerja baru, menambahkan data ke buku kerja, atau membuat elemen bagan. Dengan Excel dan aplikasi Microsoft Office lainnya, hampir semua tindakan yang dapat Anda lakukan secara manual melalui antarmuka pengguna juga dapat dilakukan secara pemrograman dengan menggunakan otomatisasi.

Excel memperlihatkan fungsi program ini melalui model objek. Object model adalah koleksi kelas dan metode yang berfungsi sebagai mitra untuk komponen Logis Excel. Sebagai contoh, ada objek aplikasi , sebuah objek Workbook dan sebuah Worksheet objek, masing-masing berisi fungsionalitas dari komponen-komponen dari Excel. Untuk mengakses object model dari Visual Basic .NET, Anda dapat mengatur referensi pustaka tipe proyek.

Artikel ini menunjukkan cara mengatur referensi proyek tepat ke Excel jenis perpustakaan untuk Visual Basic .NET dan menyediakan kode contoh untuk mengotomatisasi Excel.

Membuat klien otomatisasi untuk Microsoft Excel

  1. Mulai Microsoft Visual Studio, .NET.
  2. Pada berkas menu, klikbaru, dan kemudian klik proyek. PilihAplikasi Windows dari jenis proyek Visual Basic. Form1is dibuat secara asali.
  3. Menambahkan referensi ke Microsoft Excel ObjectLibrary. Untuk melakukannya, ikuti langkah berikut:
    1. Pada Project menu, klik Menambahkan referensi.
    2. Pada COM tab, Cari Microsoft Excel Object Library, dan kemudian klik pilih.

      Catatan Microsoft Office 2003 termasuk Interop utama Majelis (PIAs). Microsoft Office XP tidak termasuk PIAs, tetapi mereka dapat didownload. Untuk informasi lebih lanjut tentang Office XP PIAs, klik nomor artikel thefollowing untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
      328912 Microsoft Office XP utama interop Majelis (PIAs) tersedia untuk di-download
    3. Klik OK di kotak dialog Referensi Tambahkan untuk menerima pilihan Anda.
  4. Pada Lihat menu, pilihToolbox untuk menampilkan Toolbox, dan kemudian menambahkan tombol tekan toForm1.
  5. klik ganda Button1. Jendela kode untuk bentuk muncul.
  6. Di jendela kode, cari kode berikut:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    Ganti kode sebelumnya dengan kode berikut:
        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. Menambahkan kode berikut ke bagian atas dari Form1.vb:
    Imports Microsoft.Office.Core
    					

Uji otomatisasi klien

  1. Tekan F5 untuk membangun dan menjalankan program.
  2. Pada formulir, klik Button1. Programstarts Excel dan saran populates data pada lembar kerja baru.
  3. Bila Anda diminta untuk memasukkan data penjualan triwulanan, klikya. Bagan yang terkait dengan data kuartalan ditambahkan ke theworksheet.

Referensi

Untuk informasi lebih lanjut, kunjungi situs web Microsoft Developer Network (MSDN) berikut:
Microsoft Office Development dengan Visual Studio
http://msdn2.Microsoft.com/en-US/Library/aa188489 (office.10).aspx
Untuk informasi lebih lanjut tentang Excel dan Visual Basic, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
219151 Cara untuk mengotomatisasi Microsoft Excel dari Visual Basic

Properti

ID Artikel: 301982 - Kajian Terakhir: 29 September 2013 - Revisi: 3.0
Berlaku bagi:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Kata kunci: 
kbpia kbautomation kbhowto kbmt KB301982 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 301982

Berikan Masukan

 

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