VB2008で指定したExcelファイルを開くコードを作成しましたが、
指定のExcelは開かず、新規Bookが開いて
xlbookのところで、「COMExceptionはハンドルされませんでした」のエラーが出てしまいます。
環境は、VB2008,Excel2002です。
解決方法を教えてください。
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Open("パス、ファイル名")
xlSheet = xlBook.Worksheets("シート名")
提示されたコードは、COM オブジェクトの扱いに問題がありますが、
それはとりあえず横に置いといて…
目的が Excel ファイルを開くだけなのであれば、Process.Start を
使った方が良いのでは無いでしょうか。
アドバイスありがとうございます。
言足らずでしたが、最終的にやりたいことは、
Excelを開いておいて、TextBoxの値と、シリアル通信で受信したデータを
指定したセルにそれぞれ入力したいのです。
とりあえず導入部として、Excelを開くところから着手してみました。
COMException.Messageに理由が入っていると思うのですが。
発生したCOMExceptionのMessageプロパティの値はどうなっていますか。
YuOさん
ド素人ですので、「Messageプロパティの値」がどれのことか解りませんが、
発生したエラーの内容を示しますと以下の通りです。
COMExceptionはハンドルされませんでした。
メンバが見つかりません。(HRESULTからの例外:0x80020003)
以下のコードにしたことで、指定のExcelは開いたのですが、
1度ファイルが開いて、同じファイルがまた開き(使用中のため読み取り専用で)、さらに新規Bookが開いてしまいます。
指定のファイルだけを開くにはどうしたらよいのでしょうか?
Dim xlApp
Dim xlBook
Dim xlSheet
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Open("パス・ファイル名")
xlSheet = xlBook.Worksheets("シート名")
xlApp.Visible = True
xlSheet.Activate()
自己解決しました。
ありがとうございました