Excel2007でも動く様に

既存のExcelマクロを、2007でも動作可能に

1.背景
Y社では、Excel2000〜2003の各バージョンで動作するExcelマクロによるツールを作って、得意先に配布していました。 ところが、Excelの新しいバージョンである2007では、従来のマクロは「互換モード」で動くはずだったのですが、動作しなくなりました。
まず、起動直後にエラーメッセージが出て動かない他、印刷だけ試みても画像が印刷されない等の問題が多々見つかりました。 作った業者に修正を依頼したところ、新規で作り直すべきとの診断が下り、少なくない金額の見積もりが出たそうです。

2.依頼内容
もともとかなり作り込んであったため、新たに作り直すとそれなりに時間がかかってしまいます。
その間、得意先に「使わないで下さい」というわけにもいかず、1ヶ月以内で対応できるよう、Excel2007の互換モードで動作するような修正を行うこととなりました。
この時点では、マクロやシートに保護がかかっていたため、どのような対応が必要かを全て把握できていませんでしたが、1ヶ月もあれば何とかなるだろうとの見込みで対応することにしました。

3.対応内容
保護を解除して分析してみると、かなり無駄な動きが入っていることがわかりました。
とはいえ、今回は時間優先なので、2007の互換モードで動作さえできれば、こうした要素は温存することにしました。
しかし、不必要に図形を使った表現がなされているため、2007で印刷(もしくはプレビュー)を行うと、図形部分が印刷されない不具合が多々発生します。
様々な方式を試してみましたが、解消の目処がたちません。 2007で当該部分を作り直してみましたが、それでも直らないところを見ると、Excel2007固有のバグのようです。
そこで、マイクロソフト認定パートナーとしての立場を利用し、マイクロソフト社へ当該事象の原因について照会を行いました(有償)。
この結果、やはりExcel2007のバグらしいということが判明しましたが、この過程で「一定の条件下であれば、印刷可能」な方法が見つかりました。但し、処理時にボタン1発というわけにはいかず、ダイアログを1つ挟むことにしました。

4.対応結果
こうした対応の結果、ぎりぎり1ヶ月経過するころの納品となりましたが、何とかExcel2007で一通りの機能が動作するような対応を終えることができました。もちろん、同じファイルでExcel2000〜2003にも対応できます。
実は、この案件はマイクロソフトへの質問費用などの思わぬ出費がかさなったこともあり、大幅な赤字となってしまいました。
しかし、こうした経験の積み重ねが将来のサービスの品質へつながります。こうした考えの基、たとえ短期的には赤字でも、途中で投げ出したことはこれまで一度もありません。
 
Copyright(C) Crescendo Inc. All rights reserved.