A.D. Tejpal
adtp at airtelmail.in
Fri Apr 16 13:14:19 CDT 2010
Lambert,
That is a nice way to do it. I like your approach of using the function Excel_OpenWorkBookHidden() in conjunction with its helper function IsExcelRunning().
Interestingly, I have never encountered a behavior of the type reported by Rocky. Thanks to the outstanding suggestion posted by Mark (xlApp.Windows(1).Visible = True), Rocky's problem stands resolved as confirmed by him.
Best wishes,
A.D. Tejpal
------------
----- Original Message -----
From: Heenan, Lambert
To: Access Developers discussion and problem solving
Cc: A.D. Tejpal
Sent: Thursday, April 15, 2010 23:15
Subject: RE: [AccessD] Excel Automation Problem - spreadsheet is hidden
A.J.
For me that happens in a related function...
Function Excel_OpenWorkBook(Path As String, Optional UpdateLinks As Boolean = False, Optional Password As String = "") As Excel.Application
Dim xlObj As Excel.Application
On Error GoTo Excel_OpenWorkBook_err
Set xlObj = Excel_OpenWorkBookHidden(Path, UpdateLinks, Password)
If xlObj.Name > "" Then xlObj.Visible = True
Set Excel_OpenWorkBook = xlObj
Excel_OpenWorkBook_exit:
Exit Function
Excel_OpenWorkBook_err:
ReportError Err.Number, Err.Description, "Excel_OpenWorkBook", "Excel_mod", "File Name=" & Path
Set Excel_OpenWorkBook = Nothing
Resume Excel_OpenWorkBook_exit
End Function
Often I want to open an Excel file and pull some data from it and then close the file. There's no need to the user to see the file on screen, hence the function Excel_OpenWorkBookHidden.
Lambert
-----Original Message-----
From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D. Tejpal
Sent: Thursday, April 15, 2010 1:28 PM
To: Access Developers discussion and problem solving
Cc: A.D. Tejpal
Subject: Re: [AccessD] Excel Automation Problem - spreadsheet is hidden
Rocky,
It is presumed that after setting the object variable xlApp to excel application, you have the following statement:
xlApp.Visible = True
Best wishes,
A.D. Tejpal
------------
----- Original Message -----
From: Heenan, Lambert
To: Access Developers discussion and problem solving
Sent: Thursday, April 15, 2010 18:43
Subject: Re: [AccessD] Excel Automation Problem - spreadsheet is hidden
I honestly don't know but it might be worth a try.
Lambert
-----Original Message-----
From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
Sent: Wednesday, April 14, 2010 1:26 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Excel Automation Problem - spreadsheet is hidden
Do you think that will make a difference in the hidden problem?
Rocky
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Tuesday, April 13, 2010 5:14 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Excel Automation Problem - spreadsheet is hidden
I open workbooks a quite different way. The essence of it is...
Function Excel_OpenWorkBookHidden(Path As String, _
Optional UpdateLinks As Boolean = False, _
Optional Password As String = "") As Excel.Application
Dim xlApp As Excel.Application
If IsExcelRunning() Then
Set xlApp = GetObject(, "Excel.Application")
Else
Do
Set xlApp = CreateObject("Excel.Application")
Loop Until IsExcelRunning()
End If
xlApp.Workbooks.Open Path, UpdateLinks, , , Password
Set Excel_OpenWorkBookHidden = xlApp
End Function
And the helper function is
Function IsExcelRunning() As Boolean
Dim xlApp As Excel.Application
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
IsExcelRunning = (Err.Number = 0)
Set xlApp = Nothing
Err.Clear
End Function
So in my client code I declare an Excel.Application object...
Dim xlApp as Excel.Application
Then I set it with
Set xlApp = Excel_OpenWorkBookHidden(strSomePath)
And I access the worksheets with
Dim xlWs as Excel.Worksheet
Set xlWs = xlApp.Worksheets(1)
Notice that the client code does not even use a workbook object. I've not had any serious trouble with that, and no issues with hidden worksheets.
Lambert