|
▼充実野菜 さん:
おはようございます
まず、言葉の問題なんですが
>つまり正常な動作とはなりませんでした
動作は「正常」です。「結果」が違っているということですね。
officetanaka.net/excel/vba/cell/cell04.htm
2003では背景色としてセットできる色の数は56種類です。
この56種類に対してカラーインデックスも1〜56がアサインされています。
仮に、2003で、ColorIndexではなく、Colorで直接色番号(あるいはRGB関数で指定)で
背景色をセットした場合、「56種類のいずれか、近似値」に強制変更されます。
一方、2007以降は、背景色が1600万色、つまり、可能な色番号すべてがサポートされます。
で、2007以降では、もうColorIndexという考え方そのものが「2003との互換性を保持するためのプロパティ」
の位置づけで、基本的には、もう使うのはやめようねという性格になっているようですね。
>2003,2010で判定するにはどうすれば良いでしょうか
Application.Versionをチェックしてロジックを分岐させるか、あるいは#IFでコンパイルレベルで
生成コードを変えるといった方法があります。
www.asahi-net.or.jp/~zn3y-ngi/YNxv212.html
もう1つは、2007以降での背景色セットを、色指定ではなく明示的に、ColorIndex指定にして
2003カラーインデックスでサポートされている範囲のみ使うということも考えられるかもしれませんね。
|
|