• ベストアンサー

検索 → 削除 のマクロ

エクセルやワードのマクロで以下のことは可能でしょうか? aaaという文字列を含む行の一つ下の行を削除する。 可能でしたらマクロ文を教えて下さい。

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

  • ベストアンサー
回答No.1

簡単にですが作ってみました。 全ての列と行を検知するようにしておりますので、 RcntとCcntの値は調節してください。 Sub Macro2()  Dim Rcnt As Long  Dim Ccnt As Long  For Rcnt = 1 To 65536   For Ccnt = 1 To 256    If Cells(Rcnt, Ccnt).Value Like "*aaa*" Then     Rows(CStr(Rcnt) + ":" + CStr(Rcnt)).Delete     Exit For    End If   Next  Next End Sub

pinorin
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

私の苦労経験から、もとのシートをSheet1として、空きのシートtをSheet2と仮定して、Sheet1は削除しないで、該当行はSheet2に転記しないで、それ以外をShhet2に書き出す方法をお勧めします。行削除は注意しないとロジックで失敗します。ただ人によっては賛成してもらえないかもしれませんが。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") d = sh1.Range("a1").CurrentRegion.Rows.Count ' MsgBox d j = 1 flag = "n" For i = 1 To d If flag = "y" Then flag = "n" GoTo p01 End If p = InStr(sh1.Cells(i, 1), "abc") sh2.Cells(j, "A") = sh1.Cells(i, "A") 'BC列も移すこと.ここでは省略してます。 j = j + 1 If p = 0 Then flag = "n" Else flag = "y" End If p01: Next i End Sub

pinorin
質問者

お礼

ありがとうございます。

関連するQ&A

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • エクセル マクロ VBA

    エクセルのマクロについて質問いたします。 下記のステップ1からステップ2を一発で行うマクロ文は、 どのようになりますか? 教えてください。 <ステップ1> あるシートのB列に『AAA』という文字を含んでいる行があったら その行は丸ごと削除する。 また、『AAA』という文字を含んでいなかったら、 エラーなどが出ないで、次のステップ2の処理に移る。 <ステップ2> ステップ1と同じシートのC列に、『B』という文字を含んでいる行があったらその行は丸ごと削除する。 ※この”『B』という文字を含んでいる”という意味は、 『B-』や”『B5』と入力されている場合も含めるということです。 また、『B』という文字を含んでいなかったらエラーなどが出ないこと。

  • エクセルマクロについて教えてください。

    シート1のA列に、「AAA」という文字列が0~1個あります。 0個の場合は何もせず、1個の場合は 「AAA」以降の行を削除するという動きをマクロにしたいのですが 上手くいきません。 ご指導いただけないでしょうか?

  • アクティブになっている行をマクロで削除したい

    特定の文字の入っている行とそれ以下の行全部を削除したいのですが どうしたらよいでしょうか 例えば"小計"の入っている行から下の行を削除したいのですが 行の位置はいつも違っています セルの位置は検索で分かりますし行の削除はShift+スペースで消し それより下はShift+ctrl+方向キー+delで出来るのですが それだとマクロで実行するときいつも同じ行を消してしまいます どの位置にも関係なくアクティブセルの含まれている行とそれ以下の行を マクロで削除するにはどのように記述すればいいですか

  • エクセルでとある文字列にぶつかったらその行を削除

    エクセルのマクロで質問です。 現在A1からZ2000くらいまですべて何がしかの文字列が埋まっています。 I列に、とある文字列(例えば「AAA」とします)がある場合はその文字列の行を削除したいと考えています。 ルーチンワークのため、手作業でこの作業をするとかなり大変なので、マクロにしてやりたいと考えています。 しかし、VBを組んだりしたことがないし、簡単なマクロの設定しかやったことがありません。 どのような操作をすればいいか、ご教示ください。 お願いいたします。

  • エクセルのマクロ(検索)

    お世話になります。 エクセルのマクロで以下の処理をしたいのですがアドバイスください。 Excel2002です。 以下は実際の作業を簡略化したものです。 F列が●●という文字列で、かつE列が空白以外の行を検索した結果、 →対象行がない場合、【対象行はありません】というメッセージボックスを出し、OKをクリックしてマクロを終了させる →ある場合、1行目にオートフィルタを設定し、F列が●●という文字列で、かつE列が空白以外の行を表示させる(オートフィルタの機能で)ここでマクロの動作を一時停止させ、【続行】or【終了】が選択できるメッセージボックスを表示させる。 ここで【終了】をクリックすればマクロを終了させる。 【続行】をクリックすれば、いまオートフィルタで表示されている行のD列を値をすべて-1に変更する。次にオートフィルタを解除し、F列にある●●というセルをすべてクリア(空白)しマクロを終了させる。 アドバイスお願いします。

  • 行を削除するマクロ

    a列には数値が入っています。 2行目から、a列の数値が最大かつ最下の行(この場合は12行目)までを削除するマクロのvbaの構文を教えてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

  • マクロで可能でしょうか??

    初めまして ken2308といいます。 Excelは有る程度、使えるのですが 業務上マクロを覚えることになりました。 マクロに関しては全くのシロウトです。 Excelのマクロで以下のような事をやろうと思っておりますが Excelのマクロでは対応は可能でしょうか?? 【例】 Excelファイルが2つあります。 このファイルの大きさが【50列】×【50行】あり 【列】は飛び飛びで20列ほど非表示にており 【行】は複数のセルを結合して有ります。 このファイルを1つのファイルにしたいのですが Excelのマクロでは対応は可能でしょうか?? 自分としては以下のマクロを作成すればよいと 思っているのですが・・・ (1)列・行ともに非表示⇒表示にする。 (2)結合しているセルを解除戻す。 (3)2つのファイルをコピペする。 (4)貼り付け後、不要な列を削除する。 ※このマクロがうまく行ったら、上記で出来たファイルから  ピボットテーブルを作成するつもりです。

  • Excel2007でのマクロの設定について

    Excelのマクロについて質問です。 Excel2007でマクロを設定したいのですが以下の作業はマクロ化出来ますか? 1.特定の文字列を含む行の削除   例:(D11に特定の文字列があった場合、11行を全て削除する) 2.特定の文字列を含む行のうち、一部セルの変更   例:(A列に日付、B列に名前、C列に金額がある場合、B列を検索して該当した名前の列の日付のみ既存の日付の前日にする)   また、これは同時に複数の検索が出来ますか? ご回答お待ちしております。

  • エクセル マクロ 範囲の検索と削除

    エクセル2010を使っています。 画像の様に、A列~CQ列にの8行の表があります。 そのE列には、画像の様な文字が挿入されています。 やりたい事は、その表内のE列の文字が【全て同じ】ならば表ごと削除し、空白部分は上に詰めたいと思います。 画像で言えば、1~8行、17~24行を削除すると言う事です。 詳しい方、教えていただけませんでしょうか。 よろしくお願い致します。

専門家に質問してみよう