• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文: 条件付き書式での色付けで以下のコードを教えて頂いたんですが、色付けを)

条件付き書式での色付け変更方法とコードの意味

このQ&Aのポイント
  • 条件付き書式での色付けを変更する方法について教えてください。また、提供いただいたコードの意味も教えてください。
  • Excelの条件付き書式を使用して特定の範囲に色を付ける方法を教えてください。また、提供いただいたコードの詳細も教えてください。
  • 条件付き書式での色付けの範囲を変更する方法と、提供されたコードの意味について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 前回コードを投稿した者です! コードの書き方は人それぞれですので、「これでないとダメ!」ということはありません。 十人十色の書き方ができると思います。 ただ、約束事はありますのでそれをちゃんと記述すればマクロは動いてくれるはずです。 最初からできる人はいませんので、ボチボチ挑戦してみてください。 「マクロの記録」から始める方法もあるかと思います。 (実際はここまで必要ないだろう!というコードが表示されます) さて、本題ですが前回のコードの説明は mu2011さんが詳しく説明してくださっているのでそちらを参考にしてみてください。 尚、前回の補足に「データはA列の5行目からH列の最終行まで」とありましたので もう一度画像とコードをアップしておきます。 (コード内に簡単なコメントを入れています。) そして、mu2011さんの補足の中にある変数「i」や「j」の質問がありましたが、 「a」や「b」でも何でもOKです。当方の習慣で勝手に宣言しているだけです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) '←この行から Dim i, j, k, L As Long '変数(長整数型)の宣言 L = ActiveSheet.UsedRange.Rows.Count 'Sheetの最終行取得 Range(Cells(5, 1), Cells(L, 8)).Interior.ColorIndex = xlNone 'A5~H列最終行の色を消す For i = 5 To L '行番号(5行目~A列の最終列まで) For j = 1 To 8 '列番号(A列からH列まで) For k = 2 To Cells(Rows.Count, 10).End(xlUp).Row 'J列の2行目~最終行まで If Cells(k, 10) = Cells(i, j) Then 'セル(k行,J列)=セル(i行、j列)の場合 Cells(i, j).Interior.ColorIndex = _ Cells(k, 11).Interior.ColorIndex '(i行,j列)のセルの色は(k行,K列)の色に! End If Next k '次の「k」へ(kの最後まで繰り返し) Next j '次の「j」へ(jの最後まで繰り返し) Next i '次の「i」へ(iの最後まで繰り返し) End Sub '←この行まで 前回同様、Sheet見出し上で右クリック → コードの表示にコピー&ペーストしてください。 上記のコードがベストではないと思います。 他の方ならもっと良いコードを記述されるかもしれません。 焦らずにじっくり頑張ってみてくださいね。m(__)m

otoichihr
質問者

お礼

 できましたー!!!!!! 最後まで付き合って頂き本当にありがとうございました。 めちゃくちゃ感動しています。 ありがとうございました!!

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 曖昧な記載がありましたので訂正します。 Rows.Countはその列の最終行データ ⇒ Rows.Countはその列のデータ最終行 

otoichihr
質問者

お礼

 解決できました。 わかりづらい説明に付き合って頂きありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

実行契機は、同シート内任意セルが変化した時、設定範囲はC1:C最終行で、F列に同一の値があれば、F列に対応するG列の書式を設定するようにご質問者が提起した要件に基づいてコード化されているのだから類推できると思うが如何でしょうか。 実行契機:Private Sub Worksheet_SelectionChange(ByVal Target As Range) 適用範囲:For i = 1 To Cells(Rows.Count, 3).End(xlUp).Row 色付け条件:For j = 1 To Cells(Rows.Count, 6).End(xlUp).Row       If Cells(i, 3) = Cells(j, 6) Then       Cells(i, 3).Interior.ColorIndex = Cells(j, 7).Interior.ColorIndex 因みにCells(行,列)の3はC列、6はF列、Rows.Countはその列の最終行データです。

otoichihr
質問者

補足

 さっそくの回答ありがとうございます。 実際はC列だけではなく、もっと広い範囲なんです。(A列からH列の5行目から下全部) どの箇所をどう変更すれば良いのか知りたいんです。何度もすみません・・・・。 ちなみに i とか j は何の意味ですか?? 初心者の無知に付き合って頂いてありがとうございます。 どうぞよろしくおねがいします。