[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAオートフィルタで抽出したデータの特定の列のみ文字色を変えたい』(ここあ)
お世話になっております。
vbaで15列目の★のマークがついた行をオートフィルタで抽出し、6列目の文字の色を赤くしたいのですがうまくいきません。
他の方の質問で行全体の色を変えるものがあり、こちらは使えたのですが、できれば6列目の文字の色だけを変えたいです。
オートフィルタの抽出結果がない場合もあり、その場合は何もせずに次の処理へ移るようにしたいです。
どなたかご教授頂けましたら幸いです。宜しくお願い致します。
Dim 項目行以外 As Range, 抽出範囲 As Range
With ActiveSheet 'オートフィルタ解除 .AutoFilterMode = False 'オートフィルタを設定し抽出する .Range("A1").AutoFilter Field:=15, Criteria1:="★" 'オブジェクト型(Range型)変数にセル範囲をセット With .AutoFilter.Range Set 項目行以外 = Intersect(.Cells, .Cells.Offset(1)) Set 抽出範囲 = .SpecialCells(xlCellTypeVisible) Debug.Print 項目行以外.Address(0, 0) '確認用 Debug.Print 抽出範囲.Address(0, 0) '確認用 End With '項目行以外 かつ 抽出されている範囲(行)の文字色を赤に変更 If Not Intersect(項目行以外, 抽出範囲) Is Nothing Then Intersect(項目行以外, 抽出範囲).Font.Color = vbRed End If 'オートフィルタ解除 .AutoFilterMode = False End With
< 使用 Excel:Excel2016、使用 OS:unknown >
Sub 始まりも終わりもないマクロ() Dim MyRNG As Range
ActiveSheet.AutoFilterMode = False ActiveSheet.Range("A1").AutoFilter Field:=15, Criteria1:="★"
With ActiveSheet.AutoFilter.Range On Error Resume Next Set MyRNG = Intersect(.Cells, .Cells.Offset(1).Columns(6)).SpecialCells(xlCellTypeVisible) On Error GoTo 0
If Not MyRNG Is Nothing Then MyRNG.Font.Color = vbRed End With
ActiveSheet.AutoFilterMode = False End Sub
(もこな2 ) 2021/09/02(木) 09:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.