[[20190110190959]] 『(マクロ)配列内の検索値をセル範囲になければセ』(マイン) ページの最後に飛ぶ

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

 

『(マクロ)配列内の検索値をセル範囲になければセル着色』(マイン)

いつもお世話になっております。

セル指定範囲内に指定文字(複数)が無い場合、そのセルに着色する方法についてアドバイスをお願い致します。

全体の流れは

・配列に検索値リスト(BM7:BM&最終行)を格納したものを

・検索範囲(E7:AI66 ※行と列範囲は可変)内のセル値を1つづつみていき

・検索値に無い値がセルにあった場合は

・そのセル背景を赤に着色する

といった処理をしたく下記のとおりコードを作成している「途中」です。

というのが、コード下方の「★検索開始」の部分の記述方法が分からず、質問をさせていただきました。

何卒、アドバイスの程よろしくお願い致します。

Sub 指定範囲にリストの値がない場合はそのセル色を赤にする()

    Dim sh1 As Worksheet
    Set sh1 = ActiveSheet  '今開いているSheet

    '★検索値の取得と配列への格納
    Dim r1 As Long    '検索値最終行
    Dim myRange As Range    '検索値のあるリスト範囲
    Dim myArray As Variant    '検索値を格納
    r1 = sh1.Range("BM" & Rows.Count).End(xlUp).Row
    Set myRange = sh1.Range("BM7:BM" & r1 + 1)    'セル範囲を格納 ※+1で空白も加える
    '※配列に格納
    myArray = myRange

    '★検索範囲の取得
    Dim cl As Long    '最終列
    Dim r2 As Long    '最終行
    Dim hani As Range    '検索範囲
    For cl = sh1.Cells(4, 36).End(xlToLeft).Column To 1 Step -1
        If sh1.Cells(4, cl) <> "" Then Exit For
    Next cl
    r2 = sh1.Range("B" & Rows.Count).End(xlUp).Row
    Set hani = sh1.Range(sh1.Cells(7, 5), Cells(r2, cl))

    '★検索開始---------------------------------------

    Dim s As Range
    For Each s In hani   '検索するセル範囲
        If Not s.Value Like "配列内の検索値全部と比較" Then    '一覧にある文字以外に着色
            s.Color = vbRed    'フォントを赤着色
        End If
    Next s
  
  '★終了----------------------------------------------

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


回答ではありません。

条件付き書式でできることだと思いますが
だめな理由があるのでしょうか。

(マナ) 2019/01/10(木) 19:50


マナさん

今気づきました。

条件付き書式でできました。

すみません、マクロにこだわりすぎたようです。

解決です。

(マイン) 2019/01/10(木) 19:58


コメント返信:

[ 一覧(最新更新順) ]


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