ID Artikel: 301982 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

Cara mengotomatisasi Microsoft Excel dari Visual Basic.NET

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Perbesar semua | Perkecil semua

RINGKASAN

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

INFORMASI LEBIH LANJUT

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

Excel memperlihatkan ini program fungsi ini melalui model objek. Model objek adalah kumpulan kelas dan metode yang berfungsi sebagai rekan-rekan untuk komponen logis Excel. Sebagai contoh, ada Aplikasi objek, Buku kerja objek, dan Lembar kerja objek, masing-masing berisi fungsi mereka komponen Excel. Mengakses object model dari Visual Basic.NET, Anda dapat mengatur proyek referensi pada perpustakaan jenis.

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

Membuat klien otomasi untuk Microsoft Excel

  1. Mulai Microsoft Visual Studio.NET.
  2. Pada Berkas menu, klikBaru, lalu klik Project. PilihAplikasi Windows dari jenis proyek Visual Basic. Form1 dibuat oleh default.
  3. Menambahkan referensi ke Objek Microsoft Excel Perpustakaan. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Pada Project menu, klik Tambahkan Referensi.
    2. Pada COM tab, Cari Perpustakaan objek Microsoft Excel, lalu klik Pilih.

      Catatan Microsoft Office 2003 mencakup Interop utama Majelis (PIAs). Microsoft Office XP tidak mencakup PIAs, tetapi mereka dapat di-download. Untuk informasi lebih lanjut tentang Office XP PIAs, klik sejumlah artikel berikut untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
      328912  (http://support.microsoft.com/kb/328912/ ) Microsoft Office XP utama interop Majelis (PIAs) tersedia untuk di-download
    3. Klik Oke dalam Tambahkan Referensi kotak dialog untuk menerima pilihan Anda.
  4. Pada Lihat menu, pilihToolbox untuk menampilkan Toolbox, dan kemudian menambahkan tombol untuk Form1.
  5. Klik dua kali Button1. Jendela kode untuk bentuk muncul.
  6. Dalam 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 atas Form1.vb:
    Imports Microsoft.Office.Core
    					

Menguji klien otomasi

  1. Tekan F5 untuk membangun dan menjalankan program.
  2. Pada formulir, klik Button1. Program Mulai Excel dan saran populates data pada lembar kerja yang baru.
  3. Saat Anda diminta untuk memasukkan data penjualan kuartalan, klikYa. Bagan yang terkait dengan data kuartalan ditambahkan ke lembar kerja.

REFERENSI

Untuk informasi lebih lanjut, kunjungi Website Microsoft berikut Situs Web Developer Network (MSDN):
Microsoft Office Development with Visual Studio
.aspx http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10) (http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx)
Untuk informasi lebih lanjut tentang Excel dan Microsoft Visual Basic, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
219151  (http://support.microsoft.com/kb/219151/ ) Cara mengotomatisasi Microsoft Excel dari Visual Basic

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 MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:301982  (http://support.microsoft.com/kb/301982/en-us/ )