Excel2007条件付き書式 互換性解析レポート3

FormatCondition Compatible Check Report On Excel2007

はじめに!
第1部では、従来バージョンで作成したブックをExcel2007バージョンで取り扱う場合の互換部分を説明しました。
第2部は、その逆にExcel2007バージョンで作成したファイルを従来バージョン環境で使用すること前提にした、作業上の注意点や知得情報を中心に解説しました。
第3部は、従来バージョンでは当たり前にできていた操作が、新機能が追加されたこと特に注意して操作すべきこと中心に説明します。


第1部:「従来バージョン→Excel2007バージョン」の互換性
第2部:「Excel2007バージョン→従来バージョン」の互換性
第3部:「Excel2007バージョンでの操作上の注意点」を解説します。

第3部:「Excel2007バージョンでの操作上の注意点」

Excel2007バージョンには、従来バージョンには存在しない機能がいくつかあります。
新しく追加された「ルールの種類」は勿論ですが、個々の条件付き書式にも追加されたオプション機能があります。

個々の「条件付き書式」に追加されたオプション
条件付き書式の「ルールの管理」画面に表示されている項目で説明します。
「ルール(表示順で適用)」
この「表示順」は、優先順位(priority)は、Excelが条件付き書式の設定を評価する順序のことです。
なお、この優先順位は、当該シート単位で設定されています。
「適用先」
当該条件付き書式が設定されているセル範囲のことです。
セル範囲を変更する(追加する)ことが可能です。
「条件を満たす場合停止」
ここにチェックを入れると、この条件が満足した場合、以下に表示されている条件は評価されません。
※従来バージョンは、この機能はありませんが、すべて「停止」に該当します。
ルールによっては、ここにチェックオンできないものがあります。
「条件付き書式」設定情報の管理
条件付き書式の「ルールの管理」画面上部のボタンで説明します。
[表示ルールの表示]
「現在の選択範囲」「このワークシート」など切り替えができます。
新しい条件付き書式を登録します。
従来バージョンと異なり、「追加」ではなく、表示されている場所内の優先順位の1番目に「挿入」されます。
条件付き書式の設定を変更します。
条件付き書式の設定を削除します。
条件付き書式の設定の優先順位を変更するときに使います。
※意図した結果が得られないときは、「優先順位」「条件を満たす場合停止」を再吟味する。

ワークシート操作上の注意

1.「条件付き書式」の設定個数
セル(範囲)に設定できる「条件付き書式」の個数は、特に制限事項の記述がありません。(無制限)
2.「適用先」に関して
1つのセル(範囲)に複数の条件付き書式を設定することは、従来バージョンからできた(但し、3つまで)機能ですが、Excel2007バージョンではこれに加えて、複数の「異なる適用先」も設定できます。
「異なる適用先」を設定した場合には、以下で説明する「複写操作」で不具合が出ることがあるので注意してください。
3.「条件付き書式」の複写操作に関して、その1
従来バージョンでは、ごく当たり前にやっていたことと思いますが、Excel2007バージョンの「条件付き書式」の複写操作には、次のような不具合が発生することがあります。
なお、ここでいう「複写操作」とは、
(1)セル(範囲)のコピペ
(2)セル(範囲)の書式のコピー
(3)シートの複写
です。

1つのセル(範囲)に「異なる適用先」が含まれている場合の不具合の症状・・・・複写先では、優先順位が狂うことがあります。
●セル範囲を複写した場合
                        ↓表示順が逆転している
●単一セルを複写した場合
●セル範囲を書式のみ複写した場合:適用先が揃っているので問題はない。
 上の2つが複写先、下の2つが複写元(表示はワークシート)
4.「条件付き書式」の複写操作に関して、その2
従来バージョンでは、別シートに条件付き書式を複写する場合
(1)対象のシートを選択する。
(2)条件付き書式のダイアログを表示し、OKボタンをクリックする。
という、簡単な操作でしたが、Excel2007バージョンでは、この操作ができなくなりました。

VBA操作上の注意

1.「条件付き書式」の設定情報の取得
「ワークシート操作上の注意」でも記述したように、情報取得対象セル(範囲)に「異なる適用先」が設定されている場合、ルールの種類(Type)も条件式(Formula1)も設定通りのデータを取得することができません。
では、「適用先」が異なっているから「適用先」を揃えます。(ModifyAppliesToRangeメソッド)
しかし、元シート・セルを変更することができないので、別セル(別シートや別ブック)に複写すると優先順位が狂ってしまいます。
対策として、現状のシートの編集状態を作業用ブックに保存(SaveCopyAsメソッド)し、作業ブックで「適用先」を揃えてから、情報を取得します。
ModifyAppliesToRangeメソッド実行の直後にプロパティにアクセスすると、エラーが発生することがあるので、しばらく時間をおいてから取得します。
2.「条件付き書式」の複写
上述と同様の作業用ブックで「適用先」を揃えてから、プロパティ値を取得し、複写先セル(範囲)にAddメソッドで条件付き書式を登録します。
プロパティ値取得時、登録時は対象のセルを選択(SELECT)する必要があるため、取得したプロパティ値を変数に一時退避しておく必要があります。
3.「条件付き書式」設定セル(範囲)の判定
選択したセルが複数セルの場合、「条件付き書式」が設定されていないセルを含むことがあります。
従来バージョンですと、FormatConditions.Countは「-1」となりますが、Excel2007バージョンの場合は、設定されている条件付き書式の個数になります。
この場合、選択範囲をループしてセル単位で取得すると重複となってしまいますので、シート単位の「条件付き書式」を取得して、「適用先」が選択範囲と重なる設定の情報を取得するようにします。

条件付き書式の設定例

七曜表形式のカレンダーで「条件付き書式」の設定例を紹介します。
カレンダー(七曜表)での条件付き書式の設定例

ページの先頭へ

Copyright© 2008-2010 WinArrow All Rights Reserved.
inserted by FC2 system