エクセルのセルをコピーした際にルールはコピーしない - 教えて!goo
ん...?
用意してたレスの書き出しがこれ。
『適用先を$D:$Dのように列全体で設定してもコピー後に適用先が分断されるのはどうも仕様のようですね。
#バグっぽい動きですが。』
2007では発生しない..との事だが私の環境では発生してしまう。
...?
しばらく悩んだ。
vista/2007のサブ環境で試してみた。
ぉぉ...発生しない...orz
2010の共存インストールが影響するのか?..とも考えてみたのだがexcel本体の機能なのでそんな事はないはず。
セーフモードで同じコードを試してみると確かに発生しない。

ここでフっと思い当たる。
『コピーして Excel 2007 で [セルを貼り付けると、条件付き書式ルールが重複してください。』
http://support.microsoft.com/kb/973823/ja
これだ♪
コピーの度に同じ条件付き書式がダブって増えていくタチ悪いバグ。
以前、回答した時にレジストリを弄くってた。
なぁんだ。ReplaceCFOnPasteキーを設定しなけりゃいいのね。
納得。
.
..
ぃゃ、まて...
ReplaceCFOnPasteを設定しないと
再発。
...どっちか選べってことなの?......orz
ん...?
用意してたレスの書き出しがこれ。
『適用先を$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ビット)
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

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