Microsoft Excel Visual Basic .NET kullanarak otomatikleştirme

Makale çevirileri Makale çevirileri
Makale numarası: 301982 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Bu makalede bir Otomasyon oluşturulması gösterilmiştir Microsoft Visual Basic .NET kullanarak, Microsoft Excel'in istemci.

Daha fazla bilgi

Otomasyon diğer uygulamaları programsal olarak denetlemek için Visual Basic gibi bir dilde yazılmış uygulamaları izin veren bir işlemdir. Otomasyon Excel'e yeni bir çalışma kitabı oluşturma, çalışma kitabına veri ekleme veya grafik oluşturma gibi işlemler gerçekleştirmenizi sağlar. Excel ve diğer Microsoft Office uygulamaları ile hemen hemen tüm kullanıcı arabirimi aracılığıyla el ile gerçekleştirebileceği eylemleri de programsal olarak Otomasyon kullanarak gerçekleştirilebilir.

Excel, nesne modeli aracılığıyla, programlı bu işlevselliği sunar. Nesne modeli, sınıflar ve Excel'in mantıksal bileşenlerine karşılık gelen hizmet yöntemleri topluluğudur. Örneğin, bir Uygulama nesnesi, bir çalışma kitabı nesnesi ve Excel'in bu bileşenleri işlevselliğinin her biri içeren bir çalışma sayfası nesnesi yok. Visual Basic .NET nesne modeline erişmek için <a0></a0>, bir proje başvurusu için tür kitaplığı ayarlayabilirsiniz.

Bu makalede, Visual Basic .NET için uygun proje başvurusu <a0>Excel</a0> türündeki kitaplığa nasıl gösterir ve Excel otomatikleştirmek için örnek kodu sağlar.

Microsoft Excel'in bir Otomasyon istemcisi oluştur

  1. Microsoft Visual Studio .NET'i başlatın.
  2. Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın. Visual Basic Project'e türlerinden Windows Application seçin. Varsayılan olarak, Form1 oluşturulur.
  3. Başvuru Ekle Microsoft Excel nesne kitaplığı. Bunu yapmak için şu adımları izleyin:
    1. Proje menüsünde Add Reference.
    2. COM sekmesinde, Microsoft Excel nesne kitaplığı ' nı bulun ve sonra da <a2>Seç</a2>'i tıklatın.

      Not Microsoft Office 2003 Primary ınterop Assemblies (Pıa) içerir. Microsoft Office XP Pıa içermez, ancak bunlar yüklenebilir. Office XP Pıa hakkında'daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
      328912Microsoft Office XP ana birlikte çalışma derlemeleri (PIA) karşıdan yüklenebilir
    3. Tamam ' ı Ekle References seçimlerinizi kabul etmek için iletişim kutusu.
  4. Görünüm menüsünde, araç kutusunu görüntülemek için araç seçin ve sonra da Form1'e bir düğme ekleyin.
  5. Button1</a1> çift tıklatın. Formun kod penceresi görüntülenir.
  6. Kod penceresinde aşağıdaki kodu bulun:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    önceki kodu aşağıdaki kodla değiştir:
        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. Aşağıdaki kodu Form1.vb en üstüne ekleyin:
    Imports Microsoft.Office.Core
    					

Otomasyon istemci sınayın.

  1. Oluşturmaya ve programı çalıştırmak için F5 tuşuna basın.
  2. Form üzerinde Button1 ' ı tıklatın. Program, Excel'in başlatır ve yeni bir çalışma sayfasındaki verileri doldurur.
  3. Üç aylık satış veri girmek isteyip istemediğiniz sorulduğunda, Evet ' i tıklatın. Üç aylık verilerine bağlantılı BIR grafik, çalışma sayfasına eklenir.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
Visual Studio ile Microsoft Office geliştirme
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
Excel ve Visual Basic hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
219151Microsoft Excel Visual Basic kullanarak otomatikleştirme

Özellikler

Makale numarası: 301982 - Last Review: 29 Mart 2007 Perşembe - Gözden geçirme: 8.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbpia kbautomation kbhowto KB301982 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:301982

Geri Bildirim Ver

 

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