人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelVBAです。

添付のように集計結果の各行や列に、色をつけたいのですが
どうすればよいでしょうか?
行(商品名の増)や列(年月の増)の数は毎回異なります。

↓商品名=A列は毎回変わらない
・A列に「*合計*」がある場合、その行の最終列まで任意の色をつける
・A列に「総計」がある場合、その行の最終列まで任意の色をつける
(列数は毎回異なるので、「F列まで」という範囲指定はできない)

↓タイトル名=1行目は毎回変わらない
・1行目に「計」がある場合、その列の最終行まで任意の色をつける
(行数は毎回異なるので、「何行まで」という範囲指定はできない)

「最終行・列を取得して、そこまで色をつける」がイマイチわからず、
困っています・・・・

すいませんが宜しくお願いします。

1217941415
●拡大する


●質問者: hananeko_0
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:イマイチ タイトル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

下記のようでどうでしょうか。

色に関して変更したい場合は、下記のページを参照ください。

http://www14.big.or.jp/~kawamura/color_table.htm

Sub PaintSumRow()
 Dim lastCol As Long
 Dim lastRow As Long
 
 Dim res As Range
 Set res = Rows(1).Find(what:="計", lookat:=xlWhole)
 If res Is Nothing Then
 MsgBox "1行目に""計""がありません"
 Exit Sub
 End If
 lastCol = res.Column
 
 lastRow = Range("A" & Rows.Count).End(xlUp).Row
 
 Dim i As Long
 For i = 1 To lastRow
 If InStr(Cells(i, "A").Value, "合計") > 0 Then
 Range("A" & i).Resize(1, lastCol).Interior.ColorIndex = 36
 End If
 If Cells(i, "A").Value = "総計" Then
 Range("A" & i).Resize(1, lastCol).Interior.ColorIndex = 40
 End If
 Next
 Cells(1, lastCol).Resize(lastRow, 1).Interior.ColorIndex = 38
End Sub

問題があれば、コメントで対応します。

◎質問者からの返答

添付ファイル以外のパターンでも確認しました。

全てOKです。完璧ですっ

色の参考ページもすいませんっ (*^_^*)

Mookさん、本当にいつもありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ