

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(エクセル)
-
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
-
4
エクセルで特定の文字が入ってる列を削除方法
Excel(エクセル)
-
5
エクセルマクロで複数ある特定の文字列が含まれる行を削除したい
Excel(エクセル)
-
6
【VBA】条件に一致しない行を削除したい
Visual Basic(VBA)
-
7
エクセル 指定した文字列を含む列を削除するには
Excel(エクセル)
-
8
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
9
Excel VBA A列が特定の値以外の場合、その行を削除
Excel(エクセル)
-
10
特定の文字列が含まれている行のみ抜き出して、別シートに書き出す方法(Excel 2007)
Excel(エクセル)
-
11
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
12
マクロで#N/A"のエラー行を削除したい"
Visual Basic(VBA)
-
13
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
14
条件にマッチする行を抽出するVBAを教えてください
経営情報システム
-
15
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
16
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
17
特定の色のついたセルを削除
Visual Basic(VBA)
-
18
【VBA】条件に一致しない行を削除したい 複数条件
Visual Basic(VBA)
-
19
特定のセルに数値が入っているシートのみ印刷する方法
Excel(エクセル)
-
20
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複雑なシフト表から...
-
【マクロ】変数に入れるコード...
-
エクセルの関数について
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
【マクロ】【配列】3つのシー...
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルシートの見出しの文字...
-
Amazonでマイクロソフトオフィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報