Cara mengotomatisasi Microsoft Excel dari Visual Basic

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

Pada Halaman ini

RINGKASAN

Artikel ini mendemonstrasikan cara membuat dan mengoperasikan Excel dengan menggunakan Otomatisasi dari Visual Basic.

INFORMASI LEBIH LANJUT

Ada dua cara untuk mengontrol server Otomatisasi: dengan menggunakan ikatan terbaru atau ikatan lama. Dengan ikatan terbaru, metode tidak dibatasi hingga pengoperasian dan server Otomatisasi dinyatakan sebagai Objek. Dengan ikatan lama, aplikasi Anda mengetahui pada waktu-desain jenis tepat dari objek yang akan berkomunikasi, dan dapat menyatakan objeknya sebagai jenis khusus. Sampel ini menggunakan ikatan lama, yang dianggap lebih baik dalam banyak kasus karena memberikan performa yang lebih baik dan jenis keamanan yang lebih baik.

Untuk ikatan awal pada server Otomatisasi, Anda harus mengatur referensi pada perpustakaan jenis server tersebut. Dalam Visual Basic, ini dilakukan melalui kotak dialog Referensi yang ditemukan di bawah menu Projek | Referensi. Untuk sampel ini, Anda harus menambah referensi ke perpustakaan jenis untuk Excel sebelum Anda dapat menjalankan kode. Baca langkah di bawah ini mengenai cara menambah referensi.

Membuat Sampel Otomatisasi

  1. Mulai Visual Basic dan buat projek Standard EXE yang baru. Form1 dibuat secara default.
  2. KlikProjek kemudian klik Referensi. Kotak dialog Referensi muncul. Gulir daftar ke bawah hingga Anda menemukan perpustakaan objek Microsoft Excel, kemudian pilih item untuk menambahkan referensi pada Excel. Apabila perpustakaan objek yang benar untuk versi Excel Anda tidak muncul dalam daftar, pastikan versi Excel Anda terinstal dengan benar.

    Catatan
    • Apabila Anda sedang mengotomatisasi Microsoft Office Excel 2007, perpustakaan jenis muncul sebagai Perpustakaan Objek Microsoft Excel 12.0 dalam daftar Referensi.
    • Apabila Anda sedang mengotomatisasi Microsoft Office Excel 2003, perpustakaan jenis muncul sebagai Perpustakaan Objek Microsoft Excel 11.0 dalam daftar Referensi.
    • Apabila Anda sedang mengotomatisasi Microsoft Excel 2002, perpustakaan jenis muncul sebagai Perpustakaan Objek Microsoft Excel 10.0 dalam daftar Referensi
    • Apabila Anda sedang mengotomatisasi Microsoft Excel 2000, perpustakaan jenis muncul sebagai Perpustakaan Objek Microsoft Excel 9.0 dalam daftar Referensi.
    • Apabila Anda sedang mengotomatisasi Microsoft Excel 97, perpustakaan jenis muncul sebagai Perpustakaan Objek Microsoft Excel 8.0 dalam daftar Referensi
  3. Klik OK untuk menutup kotak dialog Referensi.
  4. Tambah CommandButton pada Form1.
  5. Dalam jendela kode untuk Form1, masukkan kode berikut:
       Option Explicit
       
       Private Sub Command1_Click()
          Dim oXL As Excel.Application
          Dim oWB As Excel.Workbook
          Dim oSheet As Excel.Worksheet
          Dim oRng As Excel.Range
          
    
          'Pada Galat GoTo Err_Handler
          
       ' Mulai Excel dan dapatkan objek Aplikasi.
          Set oXL = CreateObject("Excel.Application")
          oXL.Visible = True
          
       ' Dapatkan buku kerja yang baru.
          Set oWB = oXL.Workbooks.Add
          Set oSheet = oWB.ActiveSheet
          
       ' Tambah header tabel dengan cara sel per sel.
          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 sebagai tebal, lurus vertikal = tengah.
          With oSheet.Range("A1", "D1")
             .Font.Bold = True
             .VerticalAlignment = xlVAlignCenter
          End With
          
       ' Buat larik untuk mengatur banyak nilai secara bersamaan.
          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"
          
        ' Isi A2:B6 dengan satu larik nilai (Nama Depan dan Belakang).
          oSheet.Range("A2", "B6").Value = saNames
          
        ' Isi C2:C6 dengan formula relatif (=A2 & " " & B2).
          Set oRng = oSheet.Range("C2", "C6")
          oRng.Formula = "=A2 & "" "" & B2"
          
        ' Isi D2:D6 dengan formula(=RAND()*100000) dan gunakan format.
          Set oRng = oSheet.Range("D2", "D6")
          oRng.Formula = "=RAND()*100000"
          oRng.NumberFormat = "$0.00"
          
        ' Kolom AutoFit A:D.
          Set oRng = oSheet.Range("A1", "D1")
          oRng.EntireColumn.AutoFit
          
        ' Manipulasi jumlah variabel kolom untuk Data Penjualan Tigabulanan.
          Call DisplayQuarterlySales(oSheet)
          
        ' Pastikan Excel terlihat dan memberikan kontrol pengguna
        ' pada masa usia Microsoft Excel.
          oXL.Visible = True
          oXL.UserControl = True
          
        ' Pastikan Anda mengeluarkan referensi objek.
          Set oRng = Nothing
          Set oSheet = Nothing
          Set oWB = Nothing
          Set oXL = Nothing
          
       Exit Sub
       Err_Handler:
          MsgBox Err.Description, vbCritical, "Error: " & Err.Number
       End Sub
       
       Private Sub DisplayQuarterlySales(oWS As Excel.Worksheet)
          Dim oResizeRange As Excel.Range
          Dim oChart As Excel.Chart
          Dim iNumQtrs As Integer
          Dim sMsg As String
          Dim iRet As Integer
          
        ' Tentukan berapa banyak bagian untuk menampilkan data.
          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
          
    
          sMsg = "Displaying data for" & Str(iNumQtrs) & " quarter(s)."
          MsgBox sMsg, vbMsgBoxSetForeground, "Quarterly Sales"
          
        ' Memulai pada E1, isi header untuk jumlah kolom yang dipilih.
          Set oResizeRange = oWS.Range("E1", "E1").Resize(ColumnSize:=iNumQtrs)
    
          oResizeRange.Formula = "=""Q"" & COLUMN()-4 & CHAR(10) & ""Sales"""
          
        ' Ubah Orientasi dan properti WrapText untuk header.
          oResizeRange.Orientation = 38
          oResizeRange.WrapText = True
          
        ' Isi warna interior dari header.
          oResizeRange.Interior.ColorIndex = 36
          
        ' Isi kolom dengan formula dan gunakan format angka.
          Set oResizeRange = oWS.Range("E2", "E6").Resize(ColumnSize:=iNumQtrs)
          oResizeRange.Formula = "=RAND()*100"
          oResizeRange.NumberFormat = "$0.00"
          
        ' Gunakan batas pada data Penjualan dan header.
          Set oResizeRange = oWS.Range("E1", "E6").Resize(ColumnSize:=iNumQtrs)
          oResizeRange.Borders.Weight = xlThin
          
        ' Tambah formula Total untuk data penjualan dan gunakan batas.
          Set oResizeRange = oWS.Range("E8", "E8").Resize(ColumnSize:=iNumQtrs)
          oResizeRange.Formula = "=SUM(E2:E6)"
          With oResizeRange.Borders(xlEdgeBottom)
             .LineStyle = xlDouble
             .Weight = xlThick
          End With
          
        ' Tambahkan Bagan untuk data yang dipilih
          Set oResizeRange = oWS.Range("E2:E6").Resize(ColumnSize:=iNumQtrs)
          Set oChart = oWS.Parent.Charts.Add
          With oChart
             .ChartWizard oResizeRange, xl3DColumn, , xlColumns
             .SeriesCollection(1).XValues = oWS.Range("A2", "A6")
                For iRet = 1 To iNumQtrs
                   .SeriesCollection(iRet).Name = "=""Q" & Str(iRet) & """"
                Next iRet
             .Location xlLocationAsObject, oWS.Name
          End With
          
        ' Pindahkan bagan sehingga tidak menutupi data Anda.
          With oWS.Shapes("Chart 1")
             .Top = oWS.Rows(10).Top
             .Left = oWS.Columns(2).Left
    
          End With
          
        ' Kosongkan referensi.
          Set oChart = Nothing
          Set oResizeRange = Nothing
       
       End Sub
    
    						
  6. Tekan F5 untuk menjalankan projek.

REFERENSI

Untuk informasi lebih lanjut mengenai Otomatisasi Office, kunjungi situs dukungan Pengembangan Microsoft Office pada:
http://support.microsoft.com/ofd
(c) Microsoft Corporation 1999, Semua Hak Dilindungi Undang-Undang. Kontribusi oleh Richard R. Taylor, Microsoft Corporation.

Properti

ID Artikel: 219151 - Kajian Terakhir: 13 Juni 2008 - Revisi: 5.0
Berlaku bagi:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
Kata kunci: 
kbhowto kbautomation kbexpertisebeginner KB219151

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