goo blog サービス終了のお知らせ 

半角チルダ

ExcelVBA、その他。
覚え書きや、補足資料などのスクラップブック。
end-u(1037781)

■xl2007:条件付き書式コピー時の適用先分断

2011-01-29 15:00:00 | 気をつけたほうがいいこと
エクセルのセルをコピーした際にルールはコピーしない - 教えて!goo

ん...?
用意してたレスの書き出しがこれ。
『適用先を$D:$Dのように列全体で設定してもコピー後に適用先が分断されるのはどうも仕様のようですね。
#バグっぽい動きですが。』

2007では発生しない..との事だが私の環境では発生してしまう。
Sub test1()
  With Sheets.Add
    .Columns("A").FormatConditions.Add(xlCellValue, xlEqual, 1) _
                   .Interior.Color = vbRed
    .Range("A1").Value = 1
    .Range("A1").Copy .Range("A3")
  End With
End Sub




(環境)
OS:WindowsXP pro sp3
EXCEL:2003 11.8326.8324 sp3
(共存) 97 sr1
    2000 9.0.8968 sp3
    2007 12.0.6545.5000 sp2
    2010 14.0.4760.1000(32ビット)

...?
しばらく悩んだ。
vista/2007のサブ環境で試してみた。
ぉぉ...発生しない...orz

2010の共存インストールが影響するのか?..とも考えてみたのだがexcel本体の機能なのでそんな事はないはず。
セーフモードで同じコードを試してみると確かに発生しない。



ここでフっと思い当たる。
『コピーして Excel 2007 で [セルを貼り付けると、条件付き書式ルールが重複してください。』
http://support.microsoft.com/kb/973823/ja
これだ♪
コピーの度に同じ条件付き書式がダブって増えていくタチ悪いバグ。
以前、回答した時にレジストリを弄くってた。
なぁんだ。ReplaceCFOnPasteキーを設定しなけりゃいいのね。
納得。



.
..
ぃゃ、まて...
ReplaceCFOnPasteを設定しないと
Sub test2()
  With Sheets.Add.Range("A1")
    .FormatConditions.Add(xlCellValue, xlEqual, 1) _
             .Interior.Color = vbRed
    .Value = 1
    .Copy .Range("A3")
    .Copy .Range("A3")
    .Copy .Range("A3")
  End With
End Sub




再発。
...どっちか選べってことなの?......orz

Comment    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ■xl2003:条件付き書式の色設... | TOP | ■xl2000:VBE マウス スクロール »
最新の画像もっと見る

post a comment

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。

Recent Entries | 気をつけたほうがいいこと