Criando um gráfico no Excel via Automação OLE no Visual Basic.

Vamos mostrar como criar um gráfico no Excel a partir de sua aplicação VB via automação OLE .

1- Inicie um novo projeto no VB e no formulário padrão insira um botão de comando -command1

2- Faça uma referência no projeto a - Microsoft Excel x.0 Object Library ( x.0 pode ser: 8.0 , 9.0 )

3- Insira o código abaixo no evento click do botão de comando:

Private Sub Command1_Click()

Dim oXL As Object    ' Aplicação
Dim oBook As Object  ' workbook
Dim oSheet As Object ' Worksheet
Dim oChart As Object ' grafico Excel

Dim iRow As Integer  ' variavel para a linha atual
Dim iCol As Integer  ' variavel para coluna atual

Const cNumCols = 6   ' numero de pontos em cada serie
Const cNumRows = 2   ' Numero de series


ReDim aTemp(1 To cNumRows, 1 To cNumCols)

'inicia o Excel e cria um novo workbook
Set oXL = CreateObject("Excel.application")
Set oBook = oXL.Workbooks.Add
Set oSheet = oBook.Worksheets.Item(1)

' Inclua alguns dados nas células para as duas series
Randomize Now()
For iRow = 1 To cNumRows
  For iCol = 1 To cNumCols
    aTemp(iRow, iCol) = Int(Rnd * 50) + 1
  Next iCol
Next iRow
oSheet.Range("A1").Resize(cNumRows, cNumCols).Value = aTemp

'Inclui um objeto chart para o primeiro worksheet
Set oChart = oSheet.ChartObjects.Add(50, 40, 300, 200).Chart
oChart.SetSourceData Source:=oSheet.Range("A1").Resize(cNumRows, cNumCols)

' torna o Excel Visivel
oXL.Visible = True

oXL.UserControl = True

End Sub

- Ao iniciar o projeto ( Pressionando F5) o Excel irá ser iniciado e um novo workbook será criado.

- Os dados aleatórios ( Random ) serão incluidos no intervalo de células de A1:F2

- O gráfico será embutido na primeira worksheet

- O Gráfico será gerado com base nos dados aleatórios gerados. O resultado é exibido na figura a seguir:

Até a próxima...