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では強制終了することがあるので,こまめにファイルを保存してください」という注意を促す←利用者はそんなの知ったことではないので却下
- 画面遷移を変更し仕様を回避する←これを採用