2016-10-28 11 views
0

VBAマクロを使用してMS Excelに新しい行を挿入し、新しい行の特定のセルの背景色(つまりInterior.ColorIndex)も変更したいとします。新しい行VBAマクロを挿入する

アクティブセルの下に新しい行を挿入するのにActiveCell.Offset(1).EntireRow.Insertを使用していますが、新しい行の特定のセルの背景色を変更する方法がわかりません。例えば

私は灰色であるとセルB4C4の背景色を変更したい新しい行(即ち行4)を挿入した場合。

ご協力いただければ幸いです。

よろしく

マーティン

+0

行を挿入するコードはどのようなもので、どのようにトリガーしますか? –

+0

'アクティブセルの下に行を挿入する ActiveCell.Offset(1).EntireRow.Insert – georgemackenzie

+0

リボンのカスタムアイコンからトリガしています。 – georgemackenzie

答えて

2

これはそれを行うだろう。

Sub insertRowAndHighlightCells() 

    Dim rng As Range 
    Dim rw As Long 

    With ActiveCell 
     rw = .Row 
     .Offset(1).EntireRow.Insert 
    End With 

    Set rng = Rows(rw + 1) 
    rng.Columns("B:C").Interior.Color = RGB(191, 191, 191) 

End Sub 

編集

でも簡単なバージョン:

Sub insertRowAndHighlightCells() 

    Dim rw As Long 

    With ActiveCell 
     rw = .Row 
     .Offset(1).EntireRow.Insert 
    End With 

    Rows(rw + 1).Columns("B:C").Interior.Color = RGB(191, 191, 191) 

End Sub 
+0

Miqi180あなたの答えはお尻を蹴った!ありがとうございます:-) – georgemackenzie

+0

Thx。喜んで助けてください。 – Miqi180

0

行を挿入するために使用したactivecell.offset(1,0)を使用しないのはなぜですか?

など。

Sub test() 
    ActiveCell.Offset(1, 0).EntireRow.Insert shift:=xlDown 
    ActiveSheet.Cells(ActiveCell.Offset(1, 0).Row, 2).Interior.ColorIndex = 15 
    ActiveSheet.Cells(ActiveCell.Offset(1, 0).Row, 3).Interior.ColorIndex = 15 
    'Alternatively: 
    Dim colorRow as integer 
    colorRow = ActiveCell.Offset(1,0).Row 'The inserted row) 
    ActiveSheet.Range("B" & colorRow & ":C" & colorRow).Interior.ColorIndex = 15 

End Sub 
関連する問題