Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Existem duas formas para controlar um servidor de automatização: utilizando o enlace dinâmico ou ligação antecipada. Com o enlace tardio, métodos não estiverem ligados quando a execução e o servidor de automatização é declarado como objecto. Com o enlace inicial, a aplicação sabe no momento da estruturação o tipo exacto de objecto de comunicar com o e pode declarar respectivos objectos como um tipo específico. Este exemplo utiliza o enlace inicial, que é considerado melhor na maior parte dos casos porque concede maior desempenho e melhor segurança de tipo.
Para antecipada vincular a um servidor de automatização, terá de definir uma referência à biblioteca de tipos do servidor. No Visual Basic, isto é efectuado através de referências a caixa de diálogo localizada sob o projecto | referências menu. Neste exemplo, é necessário adicionar uma referência à biblioteca de tipos para o Excel antes de poder executar o código. Consulte os passos abaixo sobre como adicionar a referência.
Inicie o Visual Basic e crie um novo projecto EXE padrão. É criado o Form1 por predefinição.
Clique em projecto e clique em referências . referências é apresentada a caixa de diálogo. Percorra a lista até encontrar a biblioteca de objectos do Microsoft Excel e, em seguida, seleccione o item para adicionar uma referência para o Excel. Se a biblioteca de objectos correcta para a versão do Excel não aparecer na lista, certifique-se de que tem a versão do Excel instalado correctamente.
notas
Se estiver a automatizar o Microsoft Office Excel 2007, a biblioteca de tipos aparece como o Microsoft Excel 12.0 Object Library na referências lista.
Se estiver a automatizar o Microsoft Office Excel 2003, a biblioteca de tipos aparece como o Microsoft Excel 11.0 Object Library na referências lista.
Se estiver a automatizar o Microsoft Excel 2002, a biblioteca de tipos aparece como o Microsoft Excel 10.0 Object Library na lista de referências
Se estiver a automatizar o Microsoft Excel 2000, a biblioteca de tipos é apresentado como Microsoft Excel 9.0 Object Library na lista de referências .
Se estiver a automatizar o Microsoft Excel 97, a biblioteca de tipos aparece como o Microsoft Excel 8.0 Object Library na lista de referências
Clique em OK para fechar a caixa de diálogo References .
Adicione um CommandButton ao Form1.
Na janela código do Form1, insira o seguinte código:
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
'On Error GoTo Err_Handler
' Start Excel and get Application object.
Set oXL = CreateObject("Excel.Application")
oXL.Visible = True
' Get a new workbook.
Set oWB = oXL.Workbooks.Add
Set 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 = 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).
Set oRng = oSheet.Range("C2", "C6")
oRng.Formula = "=A2 & "" "" & B2"
' Fill D2:D6 with a formula(=RAND()*100000) and apply format.
Set oRng = oSheet.Range("D2", "D6")
oRng.Formula = "=RAND()*100000"
oRng.NumberFormat = "$0.00"
' AutoFit columns A:D.
Set 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 Microsoft Excel's lifetime.
oXL.Visible = True
oXL.UserControl = True
' Make sure you release object references.
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
' 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
sMsg = "Displaying data for" & Str(iNumQtrs) & " quarter(s)."
MsgBox sMsg, vbMsgBoxSetForeground, "Quarterly Sales"
' Starting at E1, fill headers for the number of columns selected.
Set 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.
Set oResizeRange = oWS.Range("E2", "E6").Resize(ColumnSize:=iNumQtrs)
oResizeRange.Formula = "=RAND()*100"
oResizeRange.NumberFormat = "$0.00"
' Apply borders to the Sales data and headers.
Set oResizeRange = oWS.Range("E1", "E6").Resize(ColumnSize:=iNumQtrs)
oResizeRange.Borders.Weight = xlThin
' Add a Totals formula for the sales data and apply a border.
Set oResizeRange = oWS.Range("E8", "E8").Resize(ColumnSize:=iNumQtrs)
oResizeRange.Formula = "=SUM(E2:E6)"
With oResizeRange.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
End With
' Add a Chart for the selected data
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
' Move the chart so as not to cover your data.
With oWS.Shapes("Chart 1")
.Top = oWS.Rows(10).Top
.Left = oWS.Columns(2).Left
End With
' Free any references.
Set oChart = Nothing
Set oResizeRange = Nothing
End Sub
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 219151
(http://support.microsoft.com/kb/219151/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.