Opening Excel from VB .NET application

D

Daniel B

I'm trying to open various Excel files to determine which
ones are not in a valid format. I have the following
snippit of code:

Try
Dim bDisplayAlertsOldValue
Dim workBook As
Excel.Workbook
bDisplayAlertsOldValue =
m_excelApp.DisplayAlerts
m_excelApp.DisplayAlerts =
False
workBook =
m_excelApp.Workbooks.Open(fileName)
workBook.Close(False)
m_excelApp.DisplayAlerts =
bDisplayAlertsOldValue

Catch ex As Exception
MsgBox(ex.ToString())
End Try

The problem I'm encountering is this. If I don't disable
the DisplayAlerts property, then Excel prompts the user
with the standard file is in incorrect format dialog. My
application is going to run without user interaction over
many excel files. If I disable the DisplayAlerts property,
Excel no longer throws the exception that I was catching
after the dialog. Any ideas?

-Dan
 
T

Tushar Mehta

With DisplayAlerts=false, XL assumes the default action for a given
dialog box. In this case, the only option is to not open the file.
Just check if the number of open workbooks has changed. Keep in mind
that XL will attempt to open a wide range of filetypes including a PDF
file -- don't ask why.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions
 
G

Guest

Thanks for the info on how DisplayAlerts property works,
that helps me understand the behavior I'm seeing. Sadly,
it seems the default action for the "This file is not in a
recognizable format" dialog is the OK button opens the
file so you can manually run a text import wizard on the
data Excel does not understand. So the workbook count is
always incremented.
 
D

Daniel B

I found a solution, since the file gets opened anyway when
DisplayAlerts is False I can check the FileFormat property
to see if its the correct structured format or if the file
was opened in xlCurrentPlatformText.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top