質問: Excelで条件に一致するセルを検索、抽出し、太字にしてセルの色を塗りつぶして、さらに個数をカウントしたい 今、Sheet1にコードがずらりと記載されておりまして、行数にしてA2~A10000まで、1万行ほどあります。 この状況におきまして。 A1からA10000までを"りんご"という文字列で検索しまして。 部分一致したら、そのセル全てを太字にして、更に黄色く塗りつぶします。 そしてその一致したセルが何個あったかというのを累計でカウントしていき...最後にJ1セルに、その個数を書き込みたいです。 そういった処理が効率的に行えると助かります...お力添えいただけますと幸いです。 よろしくお願い致します
回答: 手作業でやるとしたら、以下のような手順になると思います。 1. 対象のシートにフィルターを適用する 2. A列で、テキストフィルターの「指定の値を含む」で "りんご" を指定して絞り込む 3. 絞り込まれた状態で、A列の 2行目から最後の行までを選択 4. ステータスバーに「データの個数」が表示されているので、J1 にその数字を書き込む 5. 選択対象でセルの書式設定で、太字と背景色の黄色を設定する 6. フィルターを解除する この手順をマクロにしてみました。 下記のマクロを標準モジュールにはりつけて、処理対象のシートを選択した状態で do_count サブルーチンを実行してください。 ``` Sub mark_line_and_count(keyword) If ActiveSheet.AutoFilterMode Then ActiveSheet.Cells.AutoFilter End If ActiveSheet.Cells.AutoFilter Field:=1, Criteria1:="=*" & keyword & "*", Operator:=xlAnd last_row = Cells(Rows.Count, 1).End(xlUp).Row Set filtered_range = Range(Cells(2, 1), Cells(last_row, 1)).SpecialCells(xlCellTypeVisible) Range("j1").Value = filtered_range.Count filtered_range.Font.Bold = True filtered_range.Interior.Color = RGB(255, 255, 0) ActiveSheet.Cells.AutoFilter End Sub Sub do_count() keyword = "りんご" Call mark_line_and_count(keyword) End Sub ```