
Vb generated Excel object not destroyed
Hi All,
I am having a problem with an excel 9.0 object I create using VB6 w/ SP3
on NT4 w/ SP6. I am putting data into an excel spreadsheet object and
then generating a chart from that data. This is all cool. I am
terminating all my objects properly, but an excel.exe process is still
{*filter*} there. Dunno why it won't die. Anyone done this before and
experienced this problem. Please help.
Here some code:
Dim strChartType As String
Dim lngRow As Long
Dim lngCol As Long
Dim lngRowTotal As Long
Dim lngColTotal As Long
Dim intFreeFile As Integer
Dim strRow As String
Dim dblData As Double
Dim dbltest As Double
Dim intNull As Integer
lngRowTotal = objChart.RowCount
lngColTotal = objChart.ColumnCount
Dim objExcel As Excel.Application
Dim objWorkbook As Excel.Workbook
Dim objExcelRange As Excel.Range
Dim objWorksheet As Excel.Worksheet
Set objExcel = New Excel.Application
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets.Add
' Write Column Headers (space first)
objChart.Row = 1
strRow = ""
For lngCol = 1 To lngColTotal
objChart.Column = lngCol
objWorksheet.Cells(1, lngCol + 1).Value =
objChart.ColumnLabel
Next lngCol
' Write Data
For lngRow = 1 To lngRowTotal
objChart.Row = lngRow
strRow = ""
'Y axis data
objWorksheet.Cells(lngRow + 1, 1).Value = objChart.RowLabel
For lngCol = 1 To lngColTotal
objChart.Column = lngCol
GetData lngRow, lngCol, dblData, intNull
If intNull = 0 Then
'X Axis data
objWorksheet.Cells(lngRow + 1, lngCol + 1).Value =
dblData
End If
Next lngCol
Next lngRow
' Auto dynamically gets range of data
Set objExcelRange =
objWorkbook.Worksheets(1).Range("a1").CurrentRegion
Select Case objChart.ChartType
Case 0 ' 3D Bar
strChartType = xl3DColumnClustered
Case 1 ' 2D Bar
strChartType = xlBarClustered
Case 2 ' 3D Line
strChartType = xl3DLine
Case 3 ' 2D Line
strChartType = xlLine
Case 4 ' 3D Area
strChartType = xl3DArea
Case 5 '2D Area
strChartType = xlArea
Case 16 '2D XY
strChartType = xlXYScatterLines
End Select
With objExcel
Charts.Add
ActiveChart.ChartType = strChartType
ActiveChart.SetSourceData Source:=objExcelRange,
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = objChart.TitleText
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text =
objChart.Plot.Axis(xlValue, xlPrimary).AxisTitle.Text
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text =
objChart.Plot.Axis(xlCategory, xlPrimary).AxisTitle.Text
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End With
objWorkbook.Close False
objExcel.Quit
Set objExcelRange = Nothing
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
-- Lanky
********************
It's All Good!
Sent via Deja.com http://www.*-*-*.com/
Before you buy.