[[20211207134304]] 『VBAでセルに文字がある場合に指定範囲に色付け』(カルガモ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでセルに文字がある場合に指定範囲に色付け』(カルガモ)

 B列 … N列
9住所 … 備考

50
〜100 
B〜N列の表があり、N列に文字がある場合にその行に色を付けたいと考えています。行数は日によって変わります。
条件付き書式で済むとおもいましたが日々データシートが上書き更新されるためVBAでのマクロ組みが良いと伺いました。

本当であれは自分で組んでみてから添削をお願いしたいのですが現行知識では指定セルの色を変えることしかできず何もできていません。
お力添えいただけるとたすかります。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


>条件付き書式で済むとおもいましたが日々データシートが上書き更新されるためVBAでのマクロ組みが良いと伺いました。

誰が言ったんだ。
どうやって上書きしてんだ?
単なる言い訳?
(嫌だ) 2021/12/07(火) 14:21


B:N列を選択して、条件付き書式
「数式を使用して書式設定(略)」を選択して
数式に「=COUNTA($N1)」、書式で好きな色を選択
(きまぐれおじさん) 2021/12/07(火) 14:26

指定セルの色を変えることが出来ているなら、
EntireRowで解決出来ませんか?
解らなければ、「EntireRow VBA」でweb検索
(かぼちゃ) 2021/12/07(火) 14:28

嫌だ 様
伺ったのは他ネットサイトです。
文字のみ上書きであれば書式は変更されないのですがシート一括で上書きされると条件付き書式は消えてしまうので、マクロ込みのボタンを用意しておき上書き後でも反映できるようにしたいと考えています。

きまぐれおじさん 様
条件つき書式での色のかえ方はわかるのですが一括上書きをされてしまうと条件が消えてしまうといった状況です。説明不足ですみません。

(カルガモ) 2021/12/07(火) 14:30


 VBAの練習で。一案です。
一行目は見出し[フイールド]の想定で^^;
Option Explicit
Sub OneInstanceA()
    Dim i As Long
    Dim r As Range
    With Worksheets("Sheet1")
        Set r = .Cells(1, 2).CurrentRegion
        r.Interior.ColorIndex = 0
    End With
    For i = 2 To r.Rows.Count
        If r(i, 16) <> "" Then
            r.Rows(i).Interior.ColorIndex = 6
        End If
    Next
End Sub
(隠居Z) 2021/12/07(火) 14:39

 Range("B:N").FormatConditions.Add(Type:=xlExpression, Formula1:="=COUNTA($N1)").Interior.Color = vbRed

とりあえず赤にしましたが好きな色に変えてください
(きまぐれおじさん) 2021/12/07(火) 14:44


隠居Z 様
コードを書いて頂きありがとうございます。今回の件でVBAの勉強を始めましたので参考にさせて頂きます。本当にありがとうございます。

きまぐれおじさん 様
2度の返信誠にありがとうございます。書式をVBAで指定できることはわかっていたのですが式がさっぱり打てなかったので非常に助かります。ありがとうございます。
(カルガモ) 2021/12/07(火) 14:57


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.