条件付き書式での色付けで以下のコードを教えて頂いたんですが、色付けを
適用する範囲をどうやって変更すればいいのでしょうか?
もしよろしければ、範囲の変更の仕方と、コードの意味を教えて頂けますか?
めんどうですがよろしくお願いします・・・。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Columns(3).Interior.ColorIndex = xlNone
Dim i, j As Long
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
End If
Next j
Next i
End Sub
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
できましたー!!!!!!
最後まで付き合って頂き本当にありがとうございました。
めちゃくちゃ感動しています。
ありがとうございました!!
No.2
- 回答日時:
NO1です。
曖昧な記載がありましたので訂正します。
Rows.Countはその列の最終行データ ⇒ Rows.Countはその列のデータ最終行
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はその列の最終行データです。
この回答への補足
さっそくの回答ありがとうございます。
実際はC列だけではなく、もっと広い範囲なんです。(A列からH列の5行目から下全部)
どの箇所をどう変更すれば良いのか知りたいんです。何度もすみません・・・・。
ちなみに i とか j は何の意味ですか??
初心者の無知に付き合って頂いてありがとうございます。
どうぞよろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) 比較して等しくなかったらセルを赤くする 4 2022/07/19 20:11
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) ExcelVBAの転記について 1 2022/03/23 20:13
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
「段」と「行」の違いがよくわ...
-
VBA 指定した列にある日時デー...
-
Excel文字列一括変換
-
Excelの行数、列数を増やしたい...
-
CSVファイルの「0落ち」にVBA
-
エクセルのソートで、数字より...
-
リストからデータを紐付けしたい
-
Excel/VBA ステップインと通常...
-
横軸を日付・時間とするグラフ化
-
エクセルで最初の行や列を開け...
-
VBAで結合セルを転記する法を教...
-
VBA Splitで「引数の数が一致...
-
エクセルマクロの組み方
-
エクセル 重複したデータを別...
-
Alt+Shift+↑を一括で行うには、...
-
VBAで別ブックの列を検索し、該...
-
ListViewで列を指定して表示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA
-
Excelの行数、列数を増やしたい...
-
VBA 指定した列にある日時デー...
-
エクセルで複数列の検索をマク...
-
CSVファイルの「0落ち」にVBA
-
エクセルマクロの組み方
-
エクセルのソートで、数字より...
-
えABのある列って
-
VBAで別ブックの列を検索し、該...
-
Excel文字列一括変換
-
エクセルで住所を県と市・郡と...
-
リストからデータを紐付けしたい
-
Alt+Shift+↑を一括で行うには、...
-
エクセル マクロ 範囲指定で...
-
エクセルで最初の行や列を開け...
-
エクセル 重複 隣の列 一番...
おすすめ情報