
No.4ベストアンサー
- 回答日時:
No.3です!
前回は外していたみていでごめんなさい。
結局↓のような感じで良いのですかね?
今回も前回と同様の方法になってしまいますが・・・
G列を色見本用の列として使用しています。
E~F列のデータが増えても対応できるようにしています。
(当方使用のExcel2003ではカラーインデックスは56色使用できたと思いますが、
白・黒等がありますので、実際使用できる色の数は少なくなります)
G列のセルは、F列の値の場合につけたい色に塗りつぶしておいてください。
画面の左下に「Sheet1」・「Sheet2」・・・となっているSheet見出し上で右クリック
→ コードの表示 → ↓のコードをコピー&ペーストしてみてください。
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
尚、エラーになりますとマクロが中止してしまいますので、
関数等でエラーを表示させないようにしておきます。
これでデータが変わるたびにマクロが実行されますので、
希望に近い形にならないでしょうか?
実際は1行目はタイトル行になっていて2行目以降にデータがあると思いますので、
その場合はコード内の「1」の部分が行番号になります。
そこを変更すれば対応できます。
以上、今回も外していたらごめんなさいね。m(__)m
この回答への補足
す、すごいですね!!VBAを覚えたらこんなことまでできるんですね。
自分がしたかった事よりこうやって色見本があると分かりやすく助かりました。
ただ、僕の質問は例だったので、実際は色付けしたい範囲は横にももっと広いんです。
今回、行の変更は教えて頂いたんですが、列の範囲も指定できますか?
(B1:H10)みたいに自分で変更できるのでしょうか?
何回も申し訳ないので、とりあえず解決ということでもう一度質問しますので、見かけたら
よろしくお願いします。
No.3
- 回答日時:
こんばんは!
実は昨日投稿しようと思っていたのですが、
質問の内容がイマイチ把握できなかったので差し控えていました。
今日もまだはっきりつかめていませんけど、
投稿してみます。
こんなことをご希望なのでしょうか?
↓の画像でSheet2に文字列の隣の列につけたい色を色見本として、表示しておきます。
Sheet1のすべてのデータを対象にしてみました。
Altキーを押しながらF11キーを押してみてください。
白い画面が出ますので、↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub test()
Dim i, j, k As Long
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1")
Set ws2 = Worksheets("sheet2")
For i = 1 To ws1.UsedRange.Rows.Count
For j = 1 To ws1.UsedRange.Columns.Count
If WorksheetFunction.CountIf(ws2.Range("A:A"), ws1.Cells(i, j)) Then
k = WorksheetFunction.Match(ws1.Cells(i, j), ws2.Range("A:A"), False)
ws1.Cells(i, j).Interior.ColorIndex = _
ws2.Cells(k, 2).Interior.ColorIndex
End If
Next j
Next i
End Sub
これでSheet1でSheet2のA列に一致するものにB列の色が表示されると思います。
以上、参考になれば良いのですが、
的外れならごめんなさいね。m(__)m

この回答への補足
こんなに丁寧にありがとうございます。
自分の説明ベタに付き合ってくれて感謝します。
No2さんに補足させてもらいました。よかったら見てみてもらえますか?
また意味が分からなかったらスミマセン・・・・・。
No.2
- 回答日時:
#1です。
良く分かりません。A B C D E F
1 い B あ A
2 い B
3 う C
の様な配置だとして、C1に、
=VLOOKUP(A1,$E$1:$F$3,2,FALSE)
といった式が入っている時、
A1の値に応じてC1の文字色を変えたいというご趣旨なら、
#1の2番目のコードで(実用上は1番目のコードでも)良いと思いますが、
そうでなければ、上記の様な例または、画像で補足してください。
なお、#1-2のコードで、参照しているセルが存在しないとエラーで止まってしまうので
Set myRange = Target.Dependentsのところを、下記の通り変更して下さい。
On Error Resume Next
Set myRange = Target.Dependents
If myRange Is Nothing Then
'該当セルなし
Exit Sub
End If
On Error GoTo 0
この回答への補足
本当に何回もすみません。
ただ条件付き書式で色付けをしたいだけなんです・・・・。
A B C D E F
1 あ 1 1 い 3
2 い 3 3 あ 1
C1に=vlookup(A1,$E$1:$F2,2,false)
というような式が入っていたとして、これをC列に複数コピーしてあります。そこでC列のセルを1だったら赤、3だったら青に塗りつぶすようにしたいんです・・・・・。
・・・・・といいますか、このシート内のすべての1や3を色付けしてもいいんです。
ただ、いままで見つけてきたVBAでの条件付き書式が、このC列のように他から参照してきた場合、色付けしてくれなくて・・・・・。範囲はシート全体でもいいので、色付けの条件(文字)を5つ以上設定できるようにして欲しいんです。
本当にわがまま言ってすみません。
見捨てないでください!!
No.1
- 回答日時:
なさりたい事は次のどちらでしょうか?
1.A1:A10のセルのどれかに、”あ”~”お”のいずれかが入力されたとき、その文字に応じて、2つ離れたセルのフォントの色を変える。
2.A1:A10のセルのどれかに、”あ”~”お”のいずれかが入力されたとき、そのセルを参照しているセルのフォントの色を変える。
※入力されたのがA1なら、A1に対応したセルを対象とする。(A2~A10については対象としない)事が前提
どちらでも無ければ、補足してください。
1のコード
(こちらで十分ではないかと思いつつ)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRange As Range, myCell As Range, myArea As Range
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
Select Case Target.Value
Case "あ"
Target.Offset(0, 2).Font.ColorIndex = 3
Case "い"
Target.Offset(0, 2).Font.ColorIndex = 4
'....
End Select
End Sub
2のコード
(補欠なので、検証は不十分です)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRange As Range, myCell As Range, myArea As Range
Dim myColorIndex As Long
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
Select Case Target.Value
Case "あ"
myColorIndex = 3
Case "い"
myColorIndex = 4
'......
End Select
'直接参照だけにしたければDirectDependentsに変更
Set myRange = Target.Dependents
For Each myArea In myRange.Areas
For Each myCell In myArea.Cells
myCell.Font.ColorIndex = myColorIndex
Next myCell
Next myArea
End Sub
この回答への補足
さっそくの回答ありがとうございます!!
分かりやすくするつもりが逆効果でした・・・・。
もう一度、お願いできますか??
ひとつのシート内に複数の文字列がありまして、これらはすべて=VLOOKUPで参照されています。
これらを条件付き書式で色付けしたいんです!!頻繁にセルの内容が変更されるので、分かりやすく色付けをして決められた文字列に反応してもらいたいんですが、難しいでしょうか?よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
エクセルシートの見出しの文字...
-
エクセルの文字数列関数と競馬...
-
エクセルでフィルターした値を...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
Dir関数のDo Whileステートメン...
-
【マクロ】実行時エラー '424':...
-
Excelに貼ったXのURLのリンク...
-
【関数】3つのセルの中で最新...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】4つの...
-
【マクロ】【画像あり】4つの...
-
セルにぴったし写真を挿入
-
【マクロ】エラー【#DIV/0!】が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報