「教えて!ピックアップ」リリース!

よろしくお願いいたします。
ファイル1とファイル2があり、以下のデータが入力されています。
ファイル1 1〜1000までの数字が列Aの各行にある。
ファイル2 1〜1000までの数字のうち任意の数字300個が列Aの各行にある。

したいこと
ファイル2の数字300個についてファイル1の該当数字のセルを塗り潰したい。これを手作業ではなく一瞬で出来る方法が知りたいです。

よろしくお願いいたします。

A 回答 (4件)

こんなのは、どうでしょう?



Sub sample()
With Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)).Offset(, 1)
.Formula = "=VLOOKUP(A1,' " & ThisWorkbook.Path & "\[book1.xlsx]Sheet1'!$A:$A,1,FALSE)"
.SpecialCells(xlCellTypeFormulas, 16).Offset(, -1).Interior.ColorIndex = 35
.ClearContents
End With
End Sub


あっ、ミスった。当該数字を塗り潰すんですね?当該数字以外を塗り潰してしまいました。申し訳ないですが、細かいところは質問者様の方で対応してください。
    • good
    • 0
この回答へのお礼

マクロを組んでいただき本当にありがとうございます。ちょっと自分で出来るかはわかりませんが、頑張ります。

お礼日時:2022/03/08 19:38

添付図参照(Excel 2019)


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓
「エクセルで2つのファイルを融合したい」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。これは同一ブックで違うシートにある場合ですよね?図解わかりやすいです。参考になります。

お礼日時:2022/03/08 19:37

おはようございます。



手作業でやっても、それ程時間が掛からないと思います。
因みに、ファイル2の任意の数字300個は1個ずつになるでしょうか?
同じ数字が重複していて、その時は、別の色にするとかはない?

ファイル1の空いている列に、COUNTIF関数でファイル2を参照する。
例) =COUNTIF([ファイル2.xlsx]Sheet1!$A$1:$A$20,A1)
その結果をフィルターを使って、0を除外する。
残ったものが、ファイル2にある数字になるので、色を塗る。
2回ある場合は、フィルターで2を選択すれば、他の色も可です。
    • good
    • 0
この回答へのお礼

ありがとうございます。言われた手法ちょっとやってみたいと思います。

お礼日時:2022/03/08 19:36

こんばんは


ファイル2とは他のブック?
シートならファイル1 A列の対象範囲に 条件書式で、
=COUNTIF(Sheet2!$A$1:$A$300,ROW())>0
(Sheet2は実際のシート)

違うブックならファイル1のブックにVBAで

サンプルコードの実行条件
2つのブックが開かれている状態で且つ対象シートインデックスが1の場合
実行はファイル1が選択されている状態で実行する

Workbook("ファイル2.xlsx")のファイル2.xlsxは実際のブック名で)

Sub test()
Dim ファイル1 As Workbook, ファイル2 As Workbook
Dim Rng1 As Range, Rng2 As Range
Dim r As Range, rr As Range

Set ファイル1 = ActiveWorkbook
Set ファイル2 = Workbooks("ファイル2.xlsx")

With ファイル1.Worksheets(1)
Set Rng1 = .Range(.Cells(1, 1), .Cells(Rows.Count, "A").End(xlUp))
End With
With ファイル2.Worksheets(1)
Set Rng2 = .Range(.Cells(1, 1), .Cells(Rows.Count, "A").End(xlUp))
End With

For Each r In Rng1
If WorksheetFunction.CountIf(Rng2, r) > 0 Then
If rr Is Nothing Then
Set rr = r
Else
Set rr = Union(rr, r)
End If
End If
Next
If Not rr Is Nothing Then
Rng1.Interior.Pattern = xlNone
rr.Interior.ColorIndex = 35 '色の変更はカラーインデックスを調べる
End If
End Sub

マクロが解らない場合は、”VBAの書き方”などで調べて
    • good
    • 0
この回答へのお礼

ありがとうございます。シートのcountの関数が簡単で良さそうです。参考になります

お礼日時:2022/03/08 19:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング