2005-12-19  サラサーティ2―その2―

いろいろ困っています。本当に困っているかどうかはさておき(なぞ)。

Excel2004 for Macにも未対応

Excel2004 for MacのVBA(VBE)もWindowsのExcel97相当なのですね。

ヨドバシの展示機でExcel2004 for Macを弄ってみました。ヘルプにenumが存在しなかったのでまず間違いありません。「Excel2003相当になっているのでは」と期待していたのですが,まったくの見当違いでした。

こうしてサラサーティは晴れてMac非対応となりました。

【追記 24 DEC 2005】Excel 2004のApplication.VBE.Versionを調べてみました。値は「5.0」でした。Excel v. Xも5.0ですので,やっぱりExcel v. XとExcel 2004のVBEは同じものです。

キャッシュが不整合

サラサーティ2ではExcelシートとオブジェクトの変換層にキャッシュを設け,高速化を図っています。どうもこのキャッシュが挙動不審で困っています。Excelブックの読み込み直後と,そのあとでキャッシュの整合が取れていないようなのです。

状態遷移の作り込みが甘いのだと思います。

Excelの仕様に遭遇

TabStripコントロールのchangeイベントハンドラ内で「時間の掛かるある処理」をするとExcel2000が強制終了してしまいました。Excelのバージョンによって動作に違いがありExcel2003では発生しませんでした。

これはExcel2000の仕様なのだと思います。仕様どおりできているのなら,その動作はバグではないのです(ふめい)。どう対処するか考えました。

  • 何もしない←現状この動作
  • 「古いExcelでは強制終了することがあるので,こまめにファイルを保存してください」という注意を促す←利用者はそんなの知ったことではないので却下
  • 画面遷移を変更し仕様を回避する←これを採用