- ベストアンサー
【Excel VBA】条件つき行削除
zap35の回答
こんなマクロでもできそうです。念のため元のシートをコピーしてから実行するようにしました Sub Macro1() Dim idx As Long Dim rng As Range Application.ScreenUpdating = False ActiveSheet.Copy after:=ActiveSheet For idx = Range("A65536").End(xlUp).Row To 1 Step -1 If Cells(idx, "A") = "計上日" Then Set rng = Range(Cells(idx, "A"), Cells(65536, "A")).Find(what:="累計", LookIn:=xlValues, lookat:=xlWhole) If Not rng Is Nothing Then If rng.Offset(0, 3).Value = 0 Then Range(Rows(idx), Rows(rng.Row)).Delete End If End If End If Next idx Application.ScreenUpdating = True End Sub >さらに、条件が加わっても同じように処理は可能でしょうか? できると思いますが、その条件が指定されないとマクロは書けません。 ご自身で工夫してみてください。 あまりお急ぎの質問ではないようですが、その「工夫」を更に求めたいなら補足は早めにお願いします。 何日も経ってから補足されても再度巡回する保証はありませんので…
関連するQ&A
- 【Excel VBA】条件を満たすデータを順に抽出
Excel2003を使用しています。 CSVでExcelに取り込んだデータの中から、条件を満たすものを順に抽出して一覧表を作成するマクロを作りたいのですが。。。 ・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下 ・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下 に順に表示させたいのですが、うまくいきません。 以前、いただいた回答で参考になりそうなものを見てみたのですが、手順というか何かヒントのようなものをいただけたら、自分でどうにかできそうなので、質問させていただきました。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】重複行の削除
はじめまして。 IDの重複を削除し、日付データを横1列にまとめるVBAについてご教示いただけますと幸いです。 ------------------------------------------------------- ▼シート1(データ入力がされているシート) A B C D E F 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 3 1234 2/3 2/20 4 1234 3/2 5 7777 1/10 1/15 1/20 6 7777 2/2 2/12 2/22 7 9876 2/3 ⇓ マクロ起動後 ▼シート2(重複行を削除しまとめたシート) A B C D E F G H 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 2/3 2/20 3/2 3 7777 1/10 1/15 1/20 2/2 2/12 2/22 4 9876 2/3 【補足】 列情報 ・A列…ID ・B-F列…日付(左詰め) ※日付はIDごと月毎に行が変わるため、IDによって複数行存在する場合があります。 ※A列のIDは重複しない場合もあれば、4行以上ある場合があります。 ※シート1のデータはおおよそ1000-5000行です。 ※IDに対して、日付は5つあれば問題ありません。そのためG列以降の日付を削除しても支障はございません。 ------------------------------------------------------ VBAの知識があまりなく、調べて出てきたものをコピペ使用も試みたのですが、 上手く動かす事ができませんでした…。 お力添え頂けますと幸いです…。 Windows10でエクセル2016を使用しております。 何卒宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Excel VBA 2つの条件を満たした行を削除
Excel2003を使用しています。 CSVファイルを元にデータを作りたく、まずは不要なデータを削除しています。 J列=0の行とJ列=0の行のA列の値と同じ値がA列に入力されている行を削除したく、J列=0のA列の値を一旦別シートに抽出し、その抽出したデータとA列のデータをループして、一致したら削除というコードを書きました。 もし可能であれば、一旦別シートに抽出せずに処理したいのですが、その場合、どのようにコードを書けばいいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】4つの条件を満たすデータを行ごと削除
Excel2003を使用しています。 ある表の中のデータで、A列に次の条件に当てはまるデータを行削除したいのですが、マクロではどのように書いたらいいのでしょうか? (1) @(アットマーク)から始まる場合 (2) 数字から始まる場合 (3) ”キー”と入力がある場合 (4) 空白の場合 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2010で行ごとの重複削除
Excel2010です。 A行目 1 3 5 5 2 2 3 B行目 2 3 5 5 4 4 C行目 1 9 7 9 9 ↓ A行目 1 3 5 2 B行目 2 3 4 5 C行目 1 7 9 というように、行ごとに重複の削除をしたいと思っています。 データタブに重複の削除があるのですが、列ごとにやるようなので、一度シート全体を 行と列を入れ替えて別シートにコピーして、 1列目全体を選択して、1列目で重複の削除を実行 2列目全体を選択して、2列目で重複の削除を実行 ・・・ というやり方もあるのですが、今扱っているエクセルは197行197列あります。 列選択、重複の削除アイコンをクリックするのを197回繰り返すのは大変です。 自動化する方法はないものでしょうか?
- ベストアンサー
- その他MS Office製品
- 【Excel VBA】複数の条件を満たすデータを行削除
Excel2003を使用しています。 ある表の中のデータで、次の4つの条件を満たすデータを行削除したいのですが、マクロではどのように書いたらいいのでしょうか? E列…データが入力されている F列…空白 G列…空白 H列…空白 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】複数範囲の並べ替えは可能でしょうか?
【Excel VBA】複数範囲の並べ替えは可能でしょうか? Excel2003を使用しています。 CSVデータを元に作成された下記のような表があります。 A列…日付、B列…受注番号、C列…摘要(会社名・品名等)、D列…金額となっています。 6行目以下に上記の内容でデータが入力されていますが、会社ごとのデータ内で日付順に並べ替えをしたいのですが、VBAで複数の範囲を選択して、それぞれの範囲内での並べ替えは可能でしょうか? A B C D 6 ○○会社 7 1/20 123 AAA 1,000 8 1/15 120 BBB 2,000 9 10 計 3,000 11 12 ××会社 13 計の1行上と下は空欄行で、以下、会社名の後にデータが続くというパターンの繰り返しで数十社分あります。 Excelのデータ⇒並べ替えでは複数選択した状態での並べ替えはできないので、VBAで可能であればと思い、質問させていただきました。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2003で重複したデータを削除したい
Excel2003で重複したデータを削除する方法を教えて下さい。 A・B・C・Dの列の全てが重複するデータを削除したいのですが、可能ですか?AとB列は重複するけど、CやDのデータは重複していなければ、残しておきたいです。 以下イメージです。 行/列 A B C D 1 なす 商店 100円 3/4 2 なす 商店 200円 3/2 3 なす 商店 200円 3/2 ------------------------------------- 以下、重複データ削除後のイメージ。 1 なす 商店 100円 3/4 2 なす 商店 200円 3/2
- 締切済み
- Excel(エクセル)
- EXCELで約6000行の中から同じ行を削除。
EXCEL初心者です。 約6000行のデーターの中から同じ名前の行を削除する方法を 教えていただけないでしょうか? A B c d e 1 ○ 2 ○ ← 削除 3 ○ ← 削除 4 △ 5 △ ← 削除 よろしくお願いいたします。
- 締切済み
- その他(インターネット・Webサービス)
- EXCEL2010 VBAで空白行以外をコピー
EXCEL2010を使用しています。 シートAではセルA1からA10に順にデータを入力していきます。 A1からA10のすべてにデータを入力する場合やA1からA4のみデータを入力する場合等があります。 このA1からA10のデータをシートBのA1からJ1にコピーしたいと思っています。 空白以外のデータをコピーして、コピー後はシートBのA1:J10で空白の列は削除したいと 思っています。 (例) シートA A1 ○ A2 ○ A3 × A4以降すべて空白 シートB A1 ○ B1 ○ C1 × D1からJ1までは列ごと削除 これをVBAで作成したいのですがどなたか詳しい方押してください。
- ベストアンサー
- その他MS Office製品
お礼
回答ありがとうございます。 教えていただいたマクロで試してみたところ、うまくいきました。 >さらに、条件が加わっても同じように処理は可能でしょうか? >できると思いますが、その条件が指定されないとマクロは書けません。 >ご自身で工夫してみてください。 書き方が紛らわしかったようで、申し訳ありません。 “D列が0の行を削除する”という条件に、今回のようにもうひとつ条件が加わっても…という意味で、書いていたつもりでした。 今回は教えていただいたコードを参考にさせていただき、無事完成しました。 ありがとうございました。