• 締切済み

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

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

みんなの回答

  • tamiemon96
  • ベストアンサー率49% (658/1341)
回答No.5

AAA から 下 全部要らないんでしょ。 マクロなくても AAA 検索して そこから下、全部行削除できますよ。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

方法1:答えだけ教えてクレな場合 sub macro1()  dim h1 as range  dim h2 as range  set h1 = range("A:A").find(what:="AAA")  if h1 is nothing then   msgbox "NOT FOUND"   exit sub  end if  set h2 = range("A65536").end(xlup)  range(h1, h2).entirerow.delete shift:=xlshiftup end sub 方法2:ジブンでやってみたい場合 A1を選ぶ 新しいマクロの記録を開始する AAAを検索する シフトキーを押しながらCtrl+Endを押す 編集メニューから削除で行全体の削除を行う (Excel2007以降を使っているときはホームタブの削除▼から行を削除する) 記録できたマクロを次のように編集する Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2011/10/6 ユーザー名 : keithin ' '  if application.worksheetfunction.countif(range("A:A"), "AAA") = 0 then exit sub  Cells.Find(What:="AAA", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _   xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _   , MatchByte:=False, SearchFormat:=False).Activate  Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select  Selection.EntireRow.Delete End Sub

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

行削除は、RowS(開始行:終了行).Deleteを使用しては如何でしょうか。 サンプルコード AAAを含む行から最終行まで削除 Set a = Range("a:a").Find("AAA") If a Is Nothing Then Exit Sub Rows(a.Row & ":" & Cells(Rows.Count, "A").End(xlUp).Row).Delete

回答No.2

「上手くいかない」は駄目。回答者はエスパーじゃない。 どう書いて、どうなったのか。エラーメッセージは出たのか。出たならそれも書く。出ないで想定と違う動作をするのであれば、どういう動作をしたのかを書く。 あと、プログラムは「書かれたとおりに動く」ものであって「書いた人の希望通りに動く」ものではない。 以上、どれも基本ですから覚えておいてください。 …というか順番に値を判定してもしAAAならそこから下を削除するだけだよね…?

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.1

>・・・・・・という動きをマクロにしたいのですが上手くいきません。 >ご指導いただけないでしょうか? だったらまず、どういう風にやってみて、どこが上手くいかなかったのかを説明してくださいね。 たぶんそうすると質問者のスキルが推測できるだろうから、それに見合ったアドバイスがもらえると思いますよ。

abyuksyk
質問者

補足

AAAの入っているセルを含む行の選択は出来ました。 Range("A:A").Find(What:="AAA").EntireRow.Select 最終行の選択も出来ました。 Range("A1").SpecialCells(xlCellTypeLastCell).EntireRow.Select 上から下を連続して選択して削除の方法がわかりません。

関連するQ&A