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
Microsoft Visual Studio .NET'i başlatın.
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.
Başvuru Ekle Microsoft Excel nesne kitaplığı. Bunu yapmak için şu adımları izleyin:
Proje menüsünde Add Reference.
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:
328912
(http://support.microsoft.com/kb/328912/
)
Microsoft Office XP ana birlikte çalışma derlemeleri (PIA) karşıdan yüklenebilir
Tamam ' ı Ekle References seçimlerinizi kabul etmek için iletişim kutusu.
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.
Button1</a1> çift tıklatın. Formun kod penceresi görüntülenir.
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
Aşağıdaki kodu Form1.vb en üstüne ekleyin:
Imports Microsoft.Office.Core
Otomasyon istemci sınayın.
Oluşturmaya ve programı çalıştırmak için F5 tuşuna basın.
Form üzerinde Button1 ' ı tıklatın. Program, Excel'in başlatır ve yeni bir çalışma sayfasındaki verileri doldurur.
Üç 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.
Ö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
(http://support.microsoft.com/kb/301982/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.