【VBA】A1参照形式のままR1C1形式で条件書式
ExcelでA1参照形式のまま、VBAで数式などR1C1形式で入れたとしても、たいていは自動でA1形式に変換してくれますよね。
ただ、例えば列は絶対参照にしたい場合、"$A1"をR1C1形式で記入すると"RC1"となり、A1参照形式のままだとRC列の1行目として認識しA1形式に変換してくれないんですよね(^_^;
この度、2つの列の値を比べて相違するものだったらセルの色を変える条件書式を入れるVBAを書いたんですが、
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= "=AND(RC2<>"""",RC1<>RC2)"
「B1セルが空欄ではなく、A1セルとB1セルが一致しないなら……」
という条件にしたいのに、A1参照形式のときにうっかりこれで入れてしまうと、
「RC1セルが空欄ではなく、RC1セルとRC2セルが一致しないなら……」
と、まあ案の定入ってしまうわけです(^_^;
こういうのを防ぐために本来はApplication.ReferenceStyleを使って現在の形式を判定し、R1C1参照形式に変更してから入れるようにすれば良いんですが、今回別のブックからデータを引っ張ってくるという手順もあるマクロで、そっちのブックでセル参照と同じ名前を定義してるものがあるらしく、エラーとなって変更することができません。
まあマクロ自体をA1形式で書くようにすればいいじゃないかとも思うんですが、作り的にVBAはR1C1形式で書きたい。
「RC<>RC[1]」と「RC[-1]<>RC」と相対参照にしてA列、B列それぞれに入れる方法もありますが、条件書式が増えるのも気持ち悪いし、何だか負けた気がして嫌(笑)
なんとかA1参照形式のままR1C1形式で条件書式をVBAで書き込む方法はないでしょうか?
さすがに仕様ということで無理でしょうかね?(^_^;