Q16:xlsx形式のファイルを一度保存したあと、再度保存処理を呼び出すとエラーが発生する。
Q16-1:
添付のプログラム「テスト.mzax」を起動し、「変更」ボタンでExcelファイルを指定後、「書き込みテスト1」、「書き込みテスト2」の順で書き込みをしたところ、「テストデータ.xls」ではエラーにならないのですが、「テストデータ.xlsx」では「書き込みテスト2」でエラーになってファイルが壊れてしまいます。プログラムの中の「起動しない」にしている部分を「定常起動」にするとこのエラーは出なくなります。どうしてでしょうか?また、この様な場合に、先にエラーをキャッチして、ファイルが壊れない様にする方法があれば教えて下さい。尚、MZのバージョンは2.8です。
関連ファイル:テストファイル.zip
A16-1:
ご指摘いただいた件を調査したところ、利用しているライブラリに不具合があることがわかりました。不具合の内容は、xlsx形式のファイルを一度保存したあと、再度保存処理を呼び出すとエラーが発生するというもので、まさにご指摘の状況で発生するようです。なお、xls形式のファイルについては問題ないようです。
この不具合は、ファイルを保存した直後に一度そのファイルから読み込み直すと、回避できるようです。アプリケーション内でそのような処理を追加してみていただけますでしょうか。
なお、上記の処理をMZコンポーネント内部の処理に追加しますので、次期バージョンでは気にせずお使いいただけますが、既にリリース済みの2.9まではアプリケーション側でご対応をお願いいたします。
※Ver.2.10より、xlsx形式ファイル保存に関わる不具合を回避するようにしました。