VBA 実行時エラー1004 について
いつもお世話になります。
作表をしていて、項目に色をつけたいのですが
VBA 実行時エラー1004 Rangeメソッドは失敗しました。Globalオブジェクト
というエラーが
If Range(Cells(5, n - 4)).Interior.Color = RGB(252, 213, 180) Then
のところででます。
If Range("Z5").Interior.Color = RGB(252, 213, 180) Then
とすると、実行できます。
Sub カラー()
Dim n As Long '列番号取得
'最終列取得
n = Cells(5, Columns.Count).End(xlToLeft).Column
MsgBox "最終列は" & n '= 今回は30です。
'セルの色を変える
If Range(Cells(5, n - 4)).Interior.Color = RGB(252, 213, 180) Then
Range(Cells(3, n - 3), Cells(5, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(39, n - 3), Cells(41, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(68, n - 3), Cells(70, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(104, n - 3), Cells(106, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(133, n - 3), Cells(135, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(169, n - 3), Cells(171, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(198, n - 3), Cells(200, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(234, n - 3), Cells(236, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(263, n - 3), Cells(265, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(299, n - 3), Cells(301, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(329, n - 3), Cells(331, n)).Interior.Color = RGB(230, 184, 183)
Range(Cells(365, n - 3), Cells(367, n)).Interior.Color = RGB(230, 184, 183)
Else
Range(Cells(3, n - 3), Cells(5, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(39, n - 3), Cells(41, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(68, n - 3), Cells(70, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(104, n - 3), Cells(106, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(133, n - 3), Cells(135, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(169, n - 3), Cells(171, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(198, n - 3), Cells(200, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(234, n - 3), Cells(236, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(263, n - 3), Cells(265, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(299, n - 3), Cells(301, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(329, n - 3), Cells(331, n)).Interior.Color = RGB(252, 213, 180)
Range(Cells(365, n - 3), Cells(367, n)).Interior.Color = RGB(252, 213, 180)
End If
End Sub
どこが間違っているのか教えていただけないでしょうか?
あと、スマートなコードの書き方もお願いします。
お礼
お忙しい所、ご返答下さり誠にありがとうございました! RGB関数で設定できる色が出せないのは、Excelの仕様というのは盲点でした。 オートシェイプの塗りつぶしをする場合は、 256×256×256色選択できたから、セルも同様に考えておりました。 Excel2003の場合、セル、文字は56色しか使用できないのですね。 そもそもできるのかという視点をもって取り組めばよかったのですね。 どうもありがとうございました!