電子書籍の厳選無料作品が豊富!

EXCEL_VBA初心者です。
大変申し訳ございませんが行削除EXCEL_VBAコードについてご教授願います。

「対象シート」に果物の項目があり
A列:種類No、B列:種類、C列:名称No、D列:名称、E列:金額
となっています。
この「対象シート」から必要な果物以外を行ごと削除したいと思っています。
「対象項目」のシートのA列に削除したい果物の種類Noが記載されています
「対象項目」のシートのC列には削除されたくない果物の名称Noが記載されています。
分かり難いのですが、「対象項目」のシートの種類に記載されている果物で名称に記載されている果物は削除せず、それ以外を削除したいです。
例えば、果物の種類No :01みかんの場合はAA清美、ABマドンナ、AE不知火の3名称は削除せず、その他のACセトカ、ADデコポンは削除する。
07柿の場合はCA富有柿は削除せず、CB おけさ柿は削除する
「対象シート」が「削除後」シートの結果になるEXCEL_VBAコードを教えて下さい。
実際は果物の品種は数十種類となり「対象シート」も何百行にもなります。
よろしくお願いします。

「不要項目の行削除方法について」の質問画像

A 回答 (8件)

No6です。

下記にアップしました。
標準モジュールに登録してください。
https://ideone.com/Xb7Imq

不明点があれば、補足してください。
    • good
    • 0
この回答へのお礼

tatsumaru77様
ありがとうございます。
完璧でした。
希望通りの結果が出ました。
大変感謝しています。

お礼日時:2024/12/25 20:38

みかん全削除でないなら「対象項目」シート6行目は不要ではないですか?

    • good
    • 0
この回答へのお礼

いんちょ様
ご指摘ありがとうございます。
自分でも対象項目の記載方法を悩んでいます。
どのように項目を記載したらよいのかわからない状態です。

お礼日時:2024/12/25 20:38

No3です。


補足ありがとうございました。

>2について:空白行の役割ですが、例えば対象シートにはないのですがメロンがあった場合に、メロンをすべて削除したい場合は対象項目シートABにメロンの情報を記載し、C、Dは空白になります。
>VBAを実行すると必要なミカンまで削除され、結果は一緒でした。


すみません。よく理解できませんでした。

以下のようなケースは、どうなってほしいのでしょうか。
対象項目のシートに、以下の指定があります。
(名称Noが空白のみかんはありません)

種類No 種類  名称No 名称
01   みかん AA   清美
01   みかん AB   マドンナ
01   みかん AE   不知火


対象シートは、以下のようになっています。
種類No 種類  名称No 名称   金額
01   みかん AA   清美   100円・・・①
01   みかん AB   マドンナ 500円・・・②
01   みかん AC   セトカ  150円・・・③
01   みかん AD   デコポン 150円・・・④
01   みかん AE   不知火  150円・・・⑤

①②⑤が残るのはわかりますが、③④はどうなってほしいのでしょうか。
③④は残ってほしいのでしょうか。それとも、消えてほしいのでしょうか。
(対象項目のシートには、名称Noが空白のみかんはありません。あなたが提示した添付図の6行目だけがない場合です)
    • good
    • 0
この回答へのお礼

tatsumaru77様
ありがとうございます。
みかんについては③④を削除したいです。
実際のデータではみかんの名称は5つでなく、数十個あります。
その中で①②⑤を残して、ほかの全てを削除したいです。
「対象項目」シートの記載方法についても悩んでいます。

お礼日時:2024/12/25 18:04

りんごは削除しないのですね。

「削除後」シートにりんごが無いのは間違いですか?
「対象項目」C,D列空白ならA,B列に書かれている種類は全削除とのことですが、6行目01-みかんは全削除ですか?それだと4,5行目の意味が無いですが...
    • good
    • 0
この回答へのお礼

ありがとうございます。
いんちょ様のご指摘通り「削除後」シートにりんごが抜けていました。
大変申し訳ございません。
01みかんの場合はAA清美、ABマドンナ、AE不知火の3名称は削除せず、その他のACセトカ、ADデコポンは削除します。
基本「対象項目」シートのA,B列に記載されている種類は削除するのですが、例外として「対象項目」シートのC,D列に記載されている名称の果物は削除しません。
よろしくお願いいたします。

お礼日時:2024/12/25 17:57

No1です。



>A列に該当するがC列に該当しない果物の行を削除できるのでしょうか?
別のセル範囲に設定して「抽出」するので、「削除」はしません。

No1に挙げた例は、
 「A列とC列が両方とも一致する行だけを抽出する」
という内容のものです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
内容理解できました。

お礼日時:2024/12/25 17:45

補足要求です。

以下の点が不明です。

1.対象シートの06 りんご ですが、
対象項目に06 りんご が存在しないので、削除しないと理解しましたが、
間違いないでしょうか。

2.対象項目のシートで、名称が空白になっている行の役割は何でしょうか。
例として、6行目の01 みかん です。(名称No、名称が空白)
もし、この行がなかった場合、削除結果は、どうなりますか。
①ある場合と同じになる。
つまり、
01 みかん AA 清美
01 みかん AB マドンナ
01 みかん AA 不知火
のみが残り、ほかのみかんは全て削除される。

②01 みかんは、一切削除されない。

①、②のどちらでしょうか。

3.種類Noと種類は、必ず1:1で対応しますか。
つまり
種類No 種類
01    みかん
01    オレンジ
のようなケースはないと考えて良いですか。

4.名称Noと名称は、必ず1:1で対応しますか。
つまり
名称No 名称
AA    清美
AA    キヨミ
のようなケースはないと考えて良いですか。

以上、補足をお願いします。
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。
補足要求
1について:はい、リストにない果物は削除しません。
      なのでりんごは対象項目シートに記載されていません。
2について:空白行の役割ですが、例えば対象シートにはないのですがメロンがあった場合に、メロンをすべて削除したい場合は対象項目シートABにメロンの情報を記載し、C、Dは空白になります。
VBAを実行すると必要なミカンまで削除され、結果は一緒でした。
3について:必ず1:1で対応します。01はみかんのみです。
4について:名称も必ず1:1で対応します。AAは清美のみです。

上記の内容で大丈夫でしょうか?
私の説明が悪く大変申し訳ございません。
よろしくお願いします。

お礼日時:2024/12/25 13:04

対象項目のC,D列にある果物だけ抽出したいのでしょうか?それなら、その行だけ削除後にコピペして、金額はvlookupとかで持ってくれば済むでしょう。

ただ、C,D列空白の行が何を意味するのか、りんごのふじは本当に削除でいいのか、気になるところです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
説明が悪く申し訳ございません。
種類にはメロン、桃、バナナなど記載していない色々な種類があります。
それらはリストに無記入なので削除はしません。
対象項目のA,B列に記載されている果物は削除ですが、その中でC、D列に記載されている名称の果物は削除しない。
対象項目のA,B列に記載されている果物で、C、D列に記載されていない名称の果物は削除する。というようにしたいです。

お礼日時:2024/12/25 13:04

こんにちは



ご説明では、A~Dの4項目が全部一致で判断するような説明になっていますけれど、「種類No」と「種類」、「名称No」と「名称」は必ず対になっているような印象を受けます。
もしそうであるなら、比較するのは2項目で済むのではないでしょうか?

また、最近のスピル機能を使えるバージョンであれば、関数でも簡単に抽出が可能です。
例えば、削除後シートのA2セルに

=FILTER(対象シートのデータ範囲,COUNTIF(対象項目A列範囲,対象シートA列範囲)*COUNTIF(対象項目C列範囲,対象シートC列範囲),"")

のような式を入力すれば、結果が自動で右方・下方にスピルされます。
(A列とC列の2項目の一致を確認すれば良いものと仮定しました)
空白セル同しは一致とは見做されませんので、セル範囲を広めに設定しておけば宜しいでしょう。(例えば1000行迄とか)


どうしてもマクロで行いたいのであれば・・
 「A2セルに関数式を設定し、A:E列を値をペーストで固定値化する」
処理でも、ご質問と同様の結果を得られます。
こちらであれば処理も簡単なので、ご自身で作成可能であろう推測します。
    • good
    • 0
この回答へのお礼

ありがとうございます。
A列に該当するがC列に該当しない果物の行を削除できるのでしょうか?

お礼日時:2024/12/25 12:28

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A