Excelマクロで特定の文字列を含む行の背景色を変更する方法

Visual Basic

Excelマクロを使って、特定の文字列を含む行の背景色を変更する方法を解説します。今回は、2つのエクセルブックが開かれている状況で、「手順.xlsm」以外のファイルで、特定の文字列がD列にある行の背景色を濃いグレーに変更する方法をステップバイステップで紹介します。

Excelマクロの概要

Excelマクロ(VBA)は、Excelの操作を自動化するために非常に便利なツールです。今回は、特定の文字列がD列に存在する場合に、その行の背景色を変更するというシンプルで軽量なマクロを作成します。

2つのエクセルブックを操作する

まず、マクロを実行したい対象のエクセルブックが「手順.xlsm」以外であることを確認します。VBAでは、`Workbooks`オブジェクトを使って複数のブックを操作できます。

以下のコードで、開かれているブックの中から「手順.xlsm」以外のブックを選択し、そのブックを対象に処理を実行します。

Dim wb As Workbook
Set wb = Workbooks(2) ' 2番目の開いているブックを選択(手順.xlsm以外)

D列に特定の文字列を検出して行の背景色を変更する

次に、D列の各セルをループで調べ、指定した文字列が含まれている場合、その行の背景色を濃いグレーに変更します。

以下のコードは、D列に「通勤費」「交通費」「宿泊費」「コピー機」のいずれかの文字列が含まれている場合、その行の背景色を変更します。

Dim cell As Range
For Each cell In wb.Sheets(1).Range("D1:D" & wb.Sheets(1).Cells(Rows.Count, 4).End(xlUp).Row)
    If cell.Value = "通勤費" Or cell.Value = "交通費" Or cell.Value = "宿泊費" Or cell.Value = "コピー機" Then
        cell.EntireRow.Interior.Color = RGB(169, 169, 169) ' 濃いグレーに変更
    End If
Next cell

このコードでは、`For Each`を使ってD列の各セルをチェックし、指定された文字列が見つかった場合、`EntireRow.Interior.Color`でその行全体の背景色を濃いグレーに変更しています。

コードを実行する

作成したマクロを実行するには、VBAエディタで「手順.xlsm」以外のエクセルブックを選び、マクロを実行します。`Workbooks(2)`の部分で対象のブックを指定しているので、最初に開かれている2番目のブックが対象となります。

これで、D列に指定された文字列がある行が自動的に濃いグレーに変わり、視覚的に識別しやすくなります。

まとめ

Excelマクロを使って、特定の文字列を含む行の背景色を変更する方法を紹介しました。これにより、大量のデータの中から特定の情報を簡単に視覚的に識別することができ、作業効率が向上します。ぜひ、上記のコードを活用して、Excel作業の自動化を試してみてください。

コメント

タイトルとURLをコピーしました