1211295863 ExcelVBAです。


集計結果に対して下記処理を行いたいのです。
※添付ファイルをご参照ください。

・A列の「計」の下に色付きの行を一行挿入する。
 (最終行「総計」の上の「計」以外)

Dim i As Long, lngLastR As Long

Const strBB As String = "計"
Application.ScreenUpdating = False
lngLastR = ActiveSheet.Range("B65536").End(xlUp).row
For i = lngLastR To 1 Step -1
'↓A列
If Cells(i, 1).Value = strBB Then
Rows(i + 1).Insert Shift:=xlDown
End If
Next i

上記のように「計」の下に一行は挿入できましたが、
色をつけるところがわかりません・・・。

[補足]
・行の数は毎回異なるので、固定の行を指定することはできません。
・挿入した色付き行に文字を入れる(白色の文字列)こともあるので、
 条件付き書式(空白セルに色をつける)はできない。
 ⇒文字を入れるとセルの色が消えるため。
・できたら最終行の「総計」の行にも、色づけしたいです。

教えていただくと大変助かります。宜しくお願いします。



回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/05/21 23:02:20
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント60pt

処理を追加した例です。このような感じでどうでしょうか。


ColorIndex の色は下記のページをご参照ください。

http://www.relief.jp/itnote/archives/000482.php

Sub sumColor()
    Dim i As Long, lngLastR As Long
    Const colorRange = 4 '--- 色を付けるセル数
    Const strBB As String = "計"
        Application.ScreenUpdating = False
    
    lngLastR = ActiveSheet.Range("A65536").End(xlUp).Row
    '--- 最終行の色
    Range("A" & lngLastR).Resize(1, colorRange).Interior.ColorIndex = 15
    
    For i = lngLastR To 1 Step -1
    '↓A列
        If Cells(i, 1).Value = strBB Then
            Rows(i + 1).Insert Shift:=xlDown
    '--- 計の色
            Range("A" & i + 1).Resize(1, colorRange).Interior.ColorIndex = 1
        End If
    Next i
End Sub
id:hananeko_0

解決しました!

本当にありがとうございます!

2008/05/21 23:00:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません