2018年9月3日月曜日

Excel条件付き書式のプレビューに文字が表示されない!?

Excel(2016)のマクロで条件付き書式を他のシートへコピーするのを作っていました。コピー処理自体はできて、動作も問題ないと思っていた。でも、Excel上で条件付き書式の設定画面を確認すると、なんか違和感。

うーん、、、あ! プレビュー(サンプル)に文字が表示されてない!?

そうそう同じケースになることはないでしょうが、誰かしら参考になればと思い、書いておきます。(検索の仕方の問題もあるでしょうが、ググってもそれらしきケースがみつからなかったし)


■対処方法
今回はマクロ側の問題であったのだけど、手動でも起こり得ることなので、とりあえず手動で直す方法です。

条件付き書式で適用する表示形式の内容が、";;" になっていました。 ∑q|゚Д゚|pワオォ!!

コピー先の条件付き書式で、該当のルールの編集画面から、[書式]>[クリア]ボタンを押してOK。
なおった状態



■マクロ側の問題
そもそも、コピー処理といっても、元の条件付き書式オブジェクト(FormatCondition)を一発でコピー先に設定することができないので、各項目ごとに値を移していた(コピー先.XXX=コピー元.XXX)。
その際、元のプロパティが未設定(Null)だとエラーとなるので、on error resume nextで無視していた。

今回問題となったNumberFormatは、未設定だとEmpty。これをコピーすると、設定後は";;"となってました。 なんで?(゚⊿゚)シラネ
そんなわけで、IsEmpty(コピー元.NumberFormat)=Falseの時だけ、コピー先に設定するようにした。
→ これで上記の手動による対応も不要。

0 件のコメント: