DOBON.NETプログラミング道掲示板

No35639 の記事


■35639 / )  Re[2]: GetObjectでExcelファイルを加工するとExcelファイルが壊れる
□投稿者/ suekun 一般人(4回)-(2024/12/11(Wed) 17:03:45)
  • アイコン魔界の仮面弁士さん ありがとうございます。
    > 一口に「破損」としか書かれていませんが、
    > 具体的にはどういう状態になってしまうのでしょうか?
    >
    > 保存処理自体が失敗するのか、
    →成功します。
    > 保存処理時にエラーメッセージが出るのか、
    →エラーメッセージも出ません。
    > 保存は行われるが、保存結果が「シート数 0 の不正なブック」になるのか
    →その通りです。(開きますが、シートが無く、ブック名も表示されません。Excelだけを開いた状態になります。)
    > .xlsx 形式で保存したはずが .xls 形式になってしまうのか、
    →なりません。
    > 処理が無応答状態となってフリーズするのか、など。
    →フリーズはしません。
    >
    >
    > また、全面的に Marshal.ReleaseComObject メソッドの呼び出しが漏れているように見えます。
    →別ルーチンで行っていますが、今回は割愛させていただきました。
    >
    > 「非表示の EXCEL.EXE」がタスクマネージャー上で残留するなどしていた場合に
    > 誤動作を引き起こしてしまう危険性があります。念のため、
    > コードを修正する前に Windows を再起動しておきましょう。
    →承知いたしました。
    >
    >
    > で…既に起動済みの Excel インスタンスに対して
    > = GetObject(,"Excel.Application")
    > などでアクセスするのならば良いですが、
    > = GetObject("Z:\Example.xlsx")
    > などでのアクセスはあまりお奨めしません。

    Dim Appxl As New Excel.Application
    wb = Appxl.Workbooks.Open(ListFile)
    で開くようにしたところ、破損せずに保存することが出来るようになりました。
    この方法で大丈夫でしょうか?
    よろしくお願い申し上げます。
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -