Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで結合セルの行に交互に色を付ける方法【VBAで簡単実装】

Microsoft Excelで大量のデータを扱っていると、行ごとに交互に色を付けると、データが格段に見やすくなり、パターンや傾向も把握しやすくなります。しかし、セルが結合された表では、通常の条件付き書式だけではうまく対応できないことがあります。そこで活躍するのがVBAコードです。VBAを使えば、結合セルを含む表にも簡単に交互の行色を適用できます。この記事では、その具体的な手順をわかりやすく解説します。

Excelで結合セルの行に交互に色を付ける手順

以下のサンプルデータでは、左端の「Category(カテゴリ)」列にさまざまな商品カテゴリ名が入力され、連続する行が「セルを結合」コマンドで結合されています。結合される行数には特定の規則性がない点に注目してください。このデータセットを使って、交互の行色を適用する方法を順番に説明していきます。

ステップ1:Visual Basic Editorを開く

結合セルに交互の行色を適用するには、VBAコードを使用します。まずはVisual Basic Editor(VBE)を開きましょう。

手順は以下の通りです。

❶ リボンの「開発」タブをクリックします。

❷ 「コード」グループにある「Visual Basic」をクリックします。

これでVisual Basic Editorがすぐに開きます。

また、キーボードの「Alt + F11」キーを押すことでも、Visual Basic Editorを開けます。

※「開発」タブが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェックを入れると表示されます。

ステップ2:新しいモジュールにVBAコードを挿入する

次に、新しいモジュールを開いてVBAコードを挿入します。

❶ メニューの「挿入」をクリックします。

❷ ドロップダウンリストから「標準モジュール」を選択します。

❸ 次のVBAコードをコピーします。

Sub Alternate_Colors()

  Dim xRw As Long
  Dim xCnt As Long
  Dim xColr As Long

  With Range("B5").CurrentRegion
    .EntireColumn.Interior.Color = xlNone
    .EntireColumn.Borders.LineStyle = xlNone
    .Columns.Borders(xlInsideVertical).Weight = xlThin
    .Columns.Borders(xlInsideHorizontal).Weight = xlThin
    .BorderAround , xlThin
    xColr = RGB(233, 237, 244)
    Do
      xColr = RGB(233, 237, 244) + RGB(208, 216, 232) - xColr
      xCnt = Cells(xRw + 5, "B").MergeArea.Rows.Count
      Cells(xRw + 5, "B").Resize(xCnt, .Columns.Count).Interior.Color = xColr
      xRw = xRw + xCnt
    Loop While xRw < .Rows.Count - 1
  End With

End Sub

❹ コピーしたコードを、新しく開いたモジュールに貼り付けます。

※コード内の「B5」は、ご自身のデータ範囲の先頭セルに合わせて変更してください。

ステップ3:マクロ有効ブックとして保存する

VBAコードを含むブックを保存する際は、以下の手順を行います。

❶ リボンの「ファイル」タブをクリックします。

❷ 「上書き保存」を選択します。ショートカットキーの「Ctrl + S」でも同様に保存できます。

❸ 警告のダイアログボックスが表示されたら、「いいえ」をクリックしてVBAコードを保持したまま進みます。

❹ 「ファイルの種類」ドロップダウンから「Excel マクロ有効ブック (*.xlsm)」を選択して保存します。

ステップ4:VBAコードを実行する

最後に、コードを実行するだけです。

❶ 「開発」タブをクリックします。

❷ 「コード」グループの「マクロ」を選択します。「Alt + F8」キーでもマクロダイアログボックスを開けます。

❸ マクロダイアログボックスで「実行」ボタンをクリックします。

これでVBAコードが実行され、結合セルを含む各行に交互の色が自動的に適用されます。結合行の行数が不規則でも、コードがMergeArea(結合領域)を認識して正しく色分けしてくれるのがポイントです。

練習用シートについて

本記事で紹介した内容は、サンプルExcelファイルの末尾にある練習用シートで、実際に手を動かしながら試すことができます。ぜひ活用してみてください。

まとめ

今回は、Excelで結合セルを含む表の行に交互に色を付ける方法を解説しました。VBAを使えば、結合セルの行数に関係なく、美しい縞模様の配色を一瞬で適用できます。ご不明な点があれば、コメント欄でお気軽にお尋ねください。できる限り迅速にお答えいたします。当サイトExceldemyでは、他にも役立つExcelテクニックを多数紹介していますので、ぜひご覧ください。

関連記事

  • Excelの条件付き書式で行に交互の色を付ける方法【動画】
  • テーブルを使わずにExcelで行に交互の色を付ける方法(5選)
  1. Excel でセルの値に基づいて 1 行おきに色を付ける方法

    Excel でセルの値に基づいて行を 1 行おきに色付けする方法を学ぶ必要があります ?大きなデータシートで作業する場合、行の色を交互にする必要があります データセットをよりよく視覚化します。そのようなユニークな種類のトリックを探しているなら、あなたは正しい場所に来ました.ここでは、10 について説明します Excel のセル値に基づいて行の色を交互に変更する簡単で便利な方法。 次の Excel ワークブックをダウンロードして、理解を深め、練習してください。 Excel でセル値に基づいて代替行に色を付ける 10 の方法 アプローチを実証するために、Daily Sales- Fruits

  2. Excelでテーブルを使わずに行の色を交互に変更する5つの方法

    データを見やすく整理したいとき、テーブルを作成せずにExcelで行の色を交互に変更することができます。この記事では、テーブルを使わずに行の色を交互に設定する方法を詳しく解説します。 テーブルなしで行の色を交互に変更する5つの方法 ここでは、テーブルを使わずに行の色を交互に変更する5つの方法を紹介します。理解しやすいよう、製品・売上・利益・ステータスの4列からなるサンプルデータを使用します。 方法1:塗りつぶしの色機能を使う 塗りつぶしの色機能を使えば、テーブルなしで行の色を交互に変更できます。ただし、完全に手作業となるため、データ量が多い場合は時間がかかる点に注意しましょう。手順は以下の通り