プロが教えるわが家の防犯対策術!

3つの条件を指定してVBAで行を削除したい

条件1:分類1が重複
条件2:分類2が重複
条件3:個数が少ない

結果1:3つの条件にあてはまる5行目夏みかんを重複するみかん行のA列へ転記したい。
結果2:3つの条件にあてはまる5行目夏みかんの行をVBAで削除したい。
VBAで行の削除をするため調べたら下記コードの事例がありました。

Dim MR As Long
Dim MC As Long
Dim DP As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row '最終行,A:A
MC = Cells(1, Columns.Count).End(xlToLeft).Column '1:1,最終列
DP = 4
Range(Cells(1, 1), Cells(MR, MC)).Sort _
Key1:=Cells(1, DP), Order1:=xlAscending, _
Header:=xlYes
Dim j As Long
With Cells(2, DP)
For j = .CurrentRegion.Rows.Count To 1 Step -1
If .Offset(j, 0) = .Offset(j - 1, 0) Then .Offset(j, 0).EntireRow.Delete
Next j
End With

このコードでは4列目の重複しか見てくれません。
複数条件として5列目の重複と3列目の大小を付け加えるにはどのようなコード修正をしたらよろしいでしょうか?

また結果1の削除する夏みかんのA列への転記はどのように追記したらよろしいでしょうか?

お知恵を貸していただけると助かります。

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

「3つの条件を指定してVBAで行を削除した」の質問画像

質問者からの補足コメント

  • 1.夏みかんとオレンジを削除して一番個数の多いものを残したいです。
    よろしくお願いします。

      補足日時:2022/06/24 11:48
  • もし1の場合、想定していませんでしたが夏みかんだけ転記できれば大丈夫です。
    よろしくお願いします。

      補足日時:2022/06/24 11:52

A 回答 (6件)

下記URLにアップしました。


https://ideone.com/8BkZen
    • good
    • 0

No.3です。



>1.夏みかんとオレンジを削除して一番個数の多いものを残したいです。

もしもですが No.1さんの表に

・ポンカン 4 フルーツ 柑橘

もあり得るものなのでしょうか?
即ち最大個数が複数存在する可能性です。
あり得なければ良いのですが、あり得た場合の処置の仕方が気になりました。
    • good
    • 0

No4です。


シートを直接書き換えるため、マクロを実行すると、シートはもとに戻りません。
実行時は、念のため、シート毎バックアップをとってから、実行してください。
    • good
    • 0

残したいデータを別シートに転記するってのはダメなんでしょうか?


無論A列についても対処はするとしてですけど。
その後元のシートを削除して移動するとか?
    • good
    • 0

>1.夏みかんとオレンジを削除して一番個数の多いものを残したいです。


よろしくお願いします。

①その場合、A列には、”夏みかんオレンジ” と記入すればよいですか?
②マクロ実行時、A列に既に、削除になった商品が記載されている可能性はありますか。その場合は、そのあとに、削除された商品を追記すれば良いですか?
    • good
    • 0

分類1と分類2が重複しているものが3つ以上あった場合は、どうなりますか。

添付図のような例です。
1.夏みかんとオレンジを削除
2.オレンジのみを削除

もし、1の場合、A列に入れるのは、夏みかんだけですか、
それとも、"夏みかんオレンジ"のようにまとめて入れるのですか。
「3つの条件を指定してVBAで行を削除した」の回答画像1
    • good
    • 0

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