指定のExcelを開くには?

解決


トス  2008-11-27 19:56:43  No: 140893

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("シート名")


魔界の仮面弁士  2008-11-27 21:48:28  No: 140894

提示されたコードは、COM オブジェクトの扱いに問題がありますが、
それはとりあえず横に置いといて…

目的が Excel ファイルを開くだけなのであれば、Process.Start を
使った方が良いのでは無いでしょうか。


トス  2008-11-27 22:17:06  No: 140895

アドバイスありがとうございます。

言足らずでしたが、最終的にやりたいことは、
Excelを開いておいて、TextBoxの値と、シリアル通信で受信したデータを
指定したセルにそれぞれ入力したいのです。
とりあえず導入部として、Excelを開くところから着手してみました。


YuO  2008-11-28 00:53:35  No: 140896

COMException.Messageに理由が入っていると思うのですが。
発生したCOMExceptionのMessageプロパティの値はどうなっていますか。


トス  2008-11-28 01:13:44  No: 140897

YuOさん
ド素人ですので、「Messageプロパティの値」がどれのことか解りませんが、
発生したエラーの内容を示しますと以下の通りです。

COMExceptionはハンドルされませんでした。
メンバが見つかりません。(HRESULTからの例外:0x80020003)


トス  2008-11-28 22:09:42  No: 140898

以下のコードにしたことで、指定の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()


トス  2008-11-28 23:08:40  No: 140899

自己解決しました。
ありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加