• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル・マクロについて教えてください)

エクセルマクロで効率的なデータ処理方法を教えてください

このQ&Aのポイント
  • エクセルのマクロを使用してデータ処理を効率化する方法を教えてください。表に含まれるデータのうち特定の条件に合致しない行を削除したいと考えています。
  • 特定の条件に合致しない行を削除するためには、C列の担当が8と721以外、F列の地域が渋谷と品川以外、G列のコードが1000未満と空白行以外、H列の数量が0以下でない行を削除する必要があります。
  • 簡易記録マクロで試してみましたが、毎回データの内容が異なるため正確な結果が得られませんでした。マクロを使ったデータ処理についての効果的な方法や参考になる情報を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.2

' Option Explicit ' Sub Macro1() '   Dim Row As Long '   For Row = [A1].End(xlDown).Row To 2 Step -1 '     If Cells(Row, "C") <> 8 And Cells(Row, "C") <> 721 Or _       Cells(Row, "F") <> "渋谷" And Cells(Row, "F") <> "品川" Or _       Cells(Row, "G") < 1000 Or _       Cells(Row, "H") <= 0 Then       Rows(Row).Delete     End If   Next Row End Sub

eco2012
質問者

お礼

ご回答ありがとうございます。欲しい結果が得られました!助かりました!マクロの勉強頑張ります!

その他の回答 (2)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

検索条件が変わる事もあると想定して……。 元の表がSheet1にあるとします。 Sheet2のA1:D3に添付の図の様に検索条件を入力します。 で、マクロはたった一行 Sub Sample()   Sheets(1).Range("A:J").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets(2).Range("A1:D3"), CopyToRange:=Sheets(2).Range("F1"), Unique:=False End Sub

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.1

ごめんなさいっ>< マクロではないのですが・・・以下の方法でも可能ではないでしょうか? https://www.forguncy.com/blog/20170714_filteroption これ参考にして一度やってみられては? 『抽出範囲への抽出』これでもできますよっ ですが・・・ マクロにこだわるのであれば、読み流して下さい><

参考URL:
https://www.forguncy.com/blog/20170714_filteroption
eco2012
質問者

お礼

ご回答ありがとうございます。フィルタでやる方法は分かります。やはりマクロで一発変換が希望です。ありがとうございました。