Hello,
I've been trying for hours and hours (since 5am) to solve this and the only thing I've accomplished is changing the chart type from what I suppose is the veritical/column default chart type to a bar/horizontal chart. I've googled it, search ms site and other forums - checked out the object library ... I just have not been successful. I throw myself at your feet in desperation ... and plant my face in the keyboard in frustration! Please help, if you can.
I am working with an example from MS website:
I am trying to accomplish the following:
1. Label the y-axis points, say "Label 1", "Label 2" ...
"Label 10" -- Currently, it prints out 1-10 - showing only the odd numbers ie: 1-9.
2. Label the Legend. Currently it reads "Series1" and "Series2"
3. Add a title to the Chart. Currently, there isn't a title in the Chart.
Here is the code w/ setup info plus the ONE part I did
manage to get working -- less all the other non-working junk I messed it up with:
------------------------------------------------------
' HOWTO
' Create Excel Chart w/OLE Automation from Visual Basic
' View products that this article applies to.
' This article was previously published under Q142387
' SUMMARY
' This article illustrates how you can use Automation in a
' Visual Basic program to create an Excel workbook that
' ontains a chart embedded on a worksheet.
' MORE Information
' Steps to Create Example Program
' Start a new project in Visual Basic. Form1 is created by default.
' Add a command button (Command1) to Form1.
' Add the following code to the Command1_Click event procedure:
'
' ** Add project reference: Microsoft Excel Object Library **
'
' Press the F5 key to run the program, and click the command button.
'
' Results: Microsoft Excel starts, and a new workbook is created.
' Random data is added to cells A1:J2 and a chart is embedded on
' the first worksheet. The embedded chart uses the random data for its source.
Private Sub Command1_Click()
On Error GoTo ErrorLog
Dim oXL As Object ' Excel application
Dim oBook As Object ' Excel workbook
Dim oSheet As Object ' Excel Worksheet
Dim oChart As Object ' Excel Chart
Dim iRow As Integer ' Index variable for the current Row
Dim iCol As Integer ' Index variable for the current Row
Const cNumCols = 10 ' Number of points in each Series
Const cNumRows = 2 ' Number of Series
ReDim aTemp(1 To cNumRows, 1 To cNumCols)
'Start Excel and create a new workbook
Set oXL = CreateObject("Excel.application")
Set oBook = oXL.Workbooks.Add
Set oSheet = oBook.Worksheets.Item(1)
' Insert Random data into Cells for the two 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
'Add a chart object to the first worksheet
Set oChart = oSheet.ChartObjects.Add(50, 40, 300, 200).Chart
' how to label y-axis ?
With oChart
' how to name/label Series 1 and Series 2 ?
.Type = xlBar 'the Only thing I've been able to make work!
' how to put in Chart Title?
End With
oChart.SetSourceData Source:=oSheet.Range("A1").Resize(cNumRows, cNumCols)
' Make Excel Visible:
oXL.Visible = True
oXL.UserControl = True
Exit Sub
ErrorLog:
MsgBox Err.Description & Chr(13) & " " & Chr(13) & Err.Number, vbExclamation
End Sub
------------------------------------------------------
Thanks so much for your time and effort!
I've been trying for hours and hours (since 5am) to solve this and the only thing I've accomplished is changing the chart type from what I suppose is the veritical/column default chart type to a bar/horizontal chart. I've googled it, search ms site and other forums - checked out the object library ... I just have not been successful. I throw myself at your feet in desperation ... and plant my face in the keyboard in frustration! Please help, if you can.
I am working with an example from MS website:
I am trying to accomplish the following:
1. Label the y-axis points, say "Label 1", "Label 2" ...
"Label 10" -- Currently, it prints out 1-10 - showing only the odd numbers ie: 1-9.
2. Label the Legend. Currently it reads "Series1" and "Series2"
3. Add a title to the Chart. Currently, there isn't a title in the Chart.
Here is the code w/ setup info plus the ONE part I did
manage to get working -- less all the other non-working junk I messed it up with:
------------------------------------------------------
' HOWTO
' Create Excel Chart w/OLE Automation from Visual Basic
' View products that this article applies to.
' This article was previously published under Q142387
' SUMMARY
' This article illustrates how you can use Automation in a
' Visual Basic program to create an Excel workbook that
' ontains a chart embedded on a worksheet.
' MORE Information
' Steps to Create Example Program
' Start a new project in Visual Basic. Form1 is created by default.
' Add a command button (Command1) to Form1.
' Add the following code to the Command1_Click event procedure:
'
' ** Add project reference: Microsoft Excel Object Library **
'
' Press the F5 key to run the program, and click the command button.
'
' Results: Microsoft Excel starts, and a new workbook is created.
' Random data is added to cells A1:J2 and a chart is embedded on
' the first worksheet. The embedded chart uses the random data for its source.
Private Sub Command1_Click()
On Error GoTo ErrorLog
Dim oXL As Object ' Excel application
Dim oBook As Object ' Excel workbook
Dim oSheet As Object ' Excel Worksheet
Dim oChart As Object ' Excel Chart
Dim iRow As Integer ' Index variable for the current Row
Dim iCol As Integer ' Index variable for the current Row
Const cNumCols = 10 ' Number of points in each Series
Const cNumRows = 2 ' Number of Series
ReDim aTemp(1 To cNumRows, 1 To cNumCols)
'Start Excel and create a new workbook
Set oXL = CreateObject("Excel.application")
Set oBook = oXL.Workbooks.Add
Set oSheet = oBook.Worksheets.Item(1)
' Insert Random data into Cells for the two 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
'Add a chart object to the first worksheet
Set oChart = oSheet.ChartObjects.Add(50, 40, 300, 200).Chart
' how to label y-axis ?
With oChart
' how to name/label Series 1 and Series 2 ?
.Type = xlBar 'the Only thing I've been able to make work!
' how to put in Chart Title?
End With
oChart.SetSourceData Source:=oSheet.Range("A1").Resize(cNumRows, cNumCols)
' Make Excel Visible:
oXL.Visible = True
oXL.UserControl = True
Exit Sub
ErrorLog:
MsgBox Err.Description & Chr(13) & " " & Chr(13) & Err.Number, vbExclamation
End Sub
------------------------------------------------------
Thanks so much for your time and effort!