

No.3ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録し、実行してください。
削除対象の行があると、メッセージボックスに表示し、削除します。
------------------------------------------------
Option Explicit
Dim Sh1, sh2 As Worksheet
Dim MaxRow As Long ' Sheet2の最終行
Public Sub Macro()
Dim row1 As Long 'sheet1の行番号
Dim row2 As Long 'sheet2の行番号
Dim row As Long '行番号(sheet2一時作業用)
Dim delf As Boolean
Set Sh1 = Worksheets("sheet1") '
Set sh2 = Worksheets("sheet2") ' 削除リスト
MaxRow = sh2.Cells(Rows.Count, 1).End(xlUp).row ' 最終行を求める
'sheet1を5行->1行に順に検索
For row1 = 5 To 1 Step -1
delf = True '削除する
If CheckDuplicate(Sh1.Cells(row1, 1)) = False Then
If CheckDuplicate(Sh1.Cells(row1, 2)) = False Then
If CheckDuplicate(Sh1.Cells(row1, 4)) = False Then
delf = False '削除しない
End If
End If
End If
If delf = True Then
MsgBox (row1 & "行を削除します")
Sh1.Rows(row1).Delete
End If
Next
End Sub
'重複チェック
Public Function CheckDuplicate(ByVal str As String)
CheckDuplicate = False '重複なし
Dim row As Long
For row = 1 To MaxRow
'str中(sheet1のA,B,D列の何れかの値)にsheet2のA列の文字が含まれるなら
If InStr(str, sh2.Cells(row, 1).Value) <> 0 Then
CheckDuplicate = True '重複あり
Exit Function
End If
Next
End Function
------------------------------------------------

No.2
- 回答日時:
補足要求です。
>Sheet2のA列にリスト化した文字列"a""b""c""d""e"という文字列を含む行を探し出し、
>その行だけを削除する
質問1:Sheet2のA列にリスト化した文字列"a""b""c""d""e" とは、
A1="a"
A2="b"
A3="c"
A4="d"
A5="e"
のように格納されているということですか?
質問2:Sheet2のA列にリスト化した文字列"a""b""c""d""e"という文字列を含む行を探し出し とは
sheet1 の A1の内容が"e"のとき(完全一致)は、削除対象ですが、
A1の内容が"XXXeYYY"のように、"e"を含んでいる場合(部分一致)でも、削除対象でしょうか?
質問3:1行、削除すると、下の行が繰り上がってきますが、それで良いですか?
ご回答ありがとうございます。
質問1、その通りです。
質問2、部分一致でも削除対象です。
質問3、繰り上げたいです。
よろしくお願いします。
No.1
- 回答日時:
Sheet1のA1~E5の5x5のデータがあり、Sheet2のA列にリスト化した削除用文字列があるとして回答します。
ここでは、Sheet1のF~K列を作業列とします。(実際には空白列でよいです)
1. F1セルに、『=AND(ISERROR(FIND(OFFSET(Sheet2!$A$1,COLUMN()-COLUMN($F$1),0,1,1),$A9)),ISERROR(FIND(OFFSET(Sheet2!$A$1,COLUMN()-COLUMN($F$1),0,1,1),$B9)),ISERROR(FIND(OFFSET(Sheet2!$A$1,COLUMN()-COLUMN($F$1),0,1,1),$D9)))』と入力します。
2. F1セルをコピーして、F1~J5セルに貼りつけます。
3. K1セルに『=IF(AND(F9:K9),"OK","DELETE")』と入力します。
4. K1セルをコピーして、K1~K5セルに貼りつけます。
5. フィルタを掛けて、K列にDELETEと表示された行のみ表示させます。
6. 選択して行削除すればよいです。
※カギカッコ『』は入力する必要ありません。
作業列の位置を変える場合は、式のセル位置を修正する必要があるかもしれません。
Sheet2のリストが増えた場合は、増えたリストの数に応じて、作業列の2列目をコピーして『コピーした列の挿入』をすればよいです。
ありがとうございます。
おっしゃられたとおり入力してみましたが、1に関してはすべてTRUEが、3に関してはエラーが返されます。
1のA9,B9,D9、3のF9:K9というのがよくわからないのですが、A1,B1,D1、F1:K1ですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
-
4
エクセルマクロで複数ある特定の文字列が含まれる行を削除したい
Excel(エクセル)
-
5
エクセルで特定の文字が入ってる列を削除方法
Excel(エクセル)
-
6
【VBA】条件に一致しない行を削除したい
Visual Basic(VBA)
-
7
Excel VBA A列が特定の値以外の場合、その行を削除
Excel(エクセル)
-
8
エクセル 指定した文字列を含む列を削除するには
Excel(エクセル)
-
9
EXCEL VBA 一致しないデータの抽出及びデータ更新
Excel(エクセル)
-
10
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
13
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
14
エクセルVBAで、ある文字を含んでいたら別シートに抽出したい
Excel(エクセル)
-
15
エクセルで特定の行を削除したいのですが。
Excel(エクセル)
-
16
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
17
一番多く表示のある値(文字列)を、Excel関数で抽出したい
Excel(エクセル)
-
18
条件にマッチする行を抽出するVBAを教えてください
経営情報システム
-
19
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
20
マクロで#N/A"のエラー行を削除したい"
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【マクロ】実行時エラー '424':...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
エクセルシートの見出しの文字...
-
エクセルの複雑なシフト表から...
-
エクセルのVBAで集計をしたい
-
エクセルでフィルターした値を...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【画像あり】【関数】指定した...
-
勤怠表について ABS、TEXT関数...
-
エクセルの文字数列関数と競馬...
-
表計算ソフトでの様式の呼称
-
【マクロ】【画像あり】4つの...
-
Excelで4択問題を作成したい
-
空白のはずがSUBTOTAL関数でカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報