No.2ベストアンサー
- 回答日時:
追加です
>シートBは6,000件
データの内容にもよりますが、フィルタの方が早いかも
Dim shA As Worksheet, shB As Worksheet
Dim rngA As Range, rngB As Range
Dim k As Range, r As Range
Dim aryA, ary
Dim i As Integer, n As Long
Dim strKey As String
Set shA = Worksheets("シートA")
Set shB = Worksheets("シートB")
Set rngA = shA.Range("B3", shA.Cells(Rows.Count, 2).End(xlUp))
ReDim aryA(rngA.Count)
ReDim ary(rngA.Count)
For Each k In rngA
strKey = ""
For i = 0 To 10
strKey = strKey & k.Offset(, i).Text
Next
aryA(n) = strKey
ary(n) = k.Text
n = n + 1
Next
Application.ScreenUpdating = False
For n = 0 To UBound(aryA)
If IsEmpty(ary(n)) Then GoTo aaa
shB.Range("B9").AutoFilter 1, ary(n)
For Each r In shB.Range("B9", shB.Cells(Rows.Count, 2).End(xlUp)).SpecialCells(xlCellTypeVisible)
strKey = ""
For i = 0 To 10
strKey = strKey & r.Offset(, i).Text
Next
If aryA(n) = strKey Then
If rngB Is Nothing Then
Set rngB = r
Else
Set rngB = Union(rngB, r)
End If
End If
Next
Next
aaa:
shB.AutoFilterMode = False
If Not rngB Is Nothing Then rngB.Interior.Color = RGB(255, 255, 0)
Application.ScreenUpdating = True
No.1
- 回答日時:
こんばんは
変数名適当でべたコードです
Dim shA As Worksheet, shB As Worksheet
Dim rngA As Range, rngB As Range
Dim k As Range, r As Range
Dim aryA
Dim i As Integer, n As Long
Dim strKey As String
Set shA = Worksheets("シートA")
Set shB = Worksheets("シートB")
Set rngA = shA.Range("B3", shA.Cells(Rows.Count, 2).End(xlUp))
ReDim aryA(rngA.Count)
For Each k In rngA
strKey = ""
For i = 0 To 10
strKey = strKey & k.Offset(, i).Text
Next
aryA(n) = strKey
n = n + 1
Next
For n = 0 To UBound(aryA)
For Each r In shB.Range("B9", shB.Cells(Rows.Count, 2).End(xlUp))
strKey = ""
For i = 0 To 10
strKey = strKey & r.Offset(, i).Text
Next
If aryA(n) = strKey Then
If rngB Is Nothing Then
Set rngB = r
Else
Set rngB = Union(rngB, r)
End If
End If
Next
Next
If Not rngB Is Nothing Then rngB.Interior.Color = RGB(255, 255, 0)
検証して解らない所は補足で
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
XL:BeforeDoubleClickが動かない
-
セルの値によって、シート見出...
-
【ExcelVBA】全シートのセルの...
-
【VBA】色のついたシート名を取得
-
エクセルのシート名変更で重複...
-
ブック名、シート名を他のモジ...
-
ExcelVBA シート名を複数セルか...
-
VBAでオブジェクト変数にsetし...
-
Worksheet_Changeの内容を標準...
-
同じ作業を複数のシートに実行...
-
VBAの天才来てください
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
別のシートを参照して計算する方法
-
【VBA】指定した検索条件に一致...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
excelのマクロで該当処理できな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報
複数のモジュールを繋いでおりますので、なるべく短いコードを希望します。