投稿者 yamaV1.02β  (社会人) 投稿日時 2009/5/8 04:44:47
お世話になります。
初級講座「第44回 周辺にあるテクノロジ」4.Excelの操作 のコードの途中でエラーになります。
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=242

Microsoft Excel 11.0 Object Libraryに参照設定して、コードを実行すると、

'▼後処理
Book.SaveAs("C:\VB\Test.xls") '保存

の部分で、

!COMException はハンドルされませんでした。
サーバーによって例外が返されました。 HRESULT からの例外:0x80010105 (RPC_E_SERVERFAULT)
                                   
トラブルシューティングのヒント:
例外のErrorCode プロパティを調べて,COM オブジェクトによって返された HRESULT を判断します。
この例外に関する一般的なヘルプを参照します。


エラーが発生しているのは、Book.SaveAs("C:\VB\Test.xls")の箇所のみです。保存先のフォルダは存在しています。保存先を変更してみたてもこのエラーは発生し続けます。
Book.SaveAs("C:\VB\Test.xls")部分をコメントアウトすると、「'Book1'への変更を保存しますか?」とダイアログが表示され、保存したファイルを見るとコートの他の部分の動作は問題なく実行されているようです。

ヘルプを辿ってみましたが、理解がおよばず、先に進めません。

試しに、レイトバインディングにしてみたところ、問題なく動作しました。
        'Dim Excel As New Microsoft.Office.Interop.Excel.Application
        'Dim Book As Microsoft.Office.Interop.Excel.Workbook
        'Dim Sheet As Microsoft.Office.Interop.Excel.Worksheet
         ↓
        Dim Excel As Object
        Dim Book As Object
        Dim Sheet As Object
        Excel = CreateObject("Excel.Application")

また、参照を Microsoft Excel 9.0 Object Library に変更してみたところ、
        Dim Excel As New Microsoft.Office.Interop.Excel.Application
        Dim Book As Microsoft.Office.Interop.Excel.Workbook
        Dim Sheet As Microsoft.Office.Interop.Excel.Worksheet

↑の3行がエラーになったので、
        Dim Excel As New Excel.Application
        Dim Book As Excel.Workbook
        Dim Sheet As Excel.Worksheet

に変更しまして、問題なく最後まで動作しました。

このエラーでは何が起きているのでしょうか。
どんなものでしょう。