• ベストアンサー

行を削除するマクロ2

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

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

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

2を探すってとこだけ、ちょびっと応用するだけです。 sub macro1r1()  dim h as range  if application.countif(range("A:A"), 2) = 0 then exit sub  set h = range("A:A").find(what:=2, lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlprevious)  range(range("A2"), h).entirerow.delete shift:=xlshiftup end sub

4rd
質問者

お礼

どうもありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 画像では6行目から12行目を削除!というコトですよね? 色々やり方はあると思いますが・・・ Sub Sample1() Dim i As Long, k As Long, c As Range Set c = Range("A:A").Find(what:=2, LookIn:=xlValues, lookat:=xlWhole) For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(i, 1) = 2 Then k = i Exit For End If Next i If Not c Is Nothing Then Rows(c.Row & ":" & k).Delete End If End Sub こんなんではどうでしょうか?m(_ _)m

4rd
質問者

お礼

どうもありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

次のようなマクロにすればよいでしょう。 Sub 行削除() Dim n, i As Long n = Range("A65536").End(xlUp).Row For i = 2 To n If Range("A" & i) = 2 Then Range("A" & i).EntireRow.Delete End If Next End Sub

4rd
質問者

お礼

どうもありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 行を削除するマクロ

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

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

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行で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 アクティブ行の削除

    エクセルで、アクティブにしているセルの行のA列からL列のみを削除というマクロを組みたいのですが、どのように記述したらいいのでしょうか? アクティブなセルはA列~L列のどこにあっても、その行のA列-L列を削除というようにしたいです。 (例1) A1がアクティブだった場合、A1~L1が削除される (例2) B4がアクティブだった場合、A4~L4が削除される すみませんが、お分かりになる方がいましたらよろしくお願いいたします。

  • マクロで特定の文字を含む行を削除の方法

    マクロについて教えてください。(初心者です) B列にある、特定の文字(ランダムに複数の文字あります)がある場合、その行ごと削除 するマクロを教えてください。 例えば、 <B列> 2015-001 2015-002 2015-003 2015-004 と、数値があります。 2015-0002 2015-0003 の行を削除したいです。 削除対象の文字はランダムに40こほどあります。 宜しくお願いします。

  • エクセル 選択するマクロ

    a列に日付があります。 c列の、a列のx日から6日後までの計7日間の行 (ただし、6日後の日付がa列にない場合、6日未満の一番近い行) を選択するマクロの構文を教えてください。 わかりにくい表現ですみません… x日を2013/01/01とした場合、選択範囲は画像のとおりです。 どうぞよろしくお願いします。

  • エクセル2010 繰り返しマクロ

    (1)g列の空白の最上行に =SUMPRODUCT(min((a:a>=f2)*(a:a<f2+730)*e:e)) と入力。 そのセルをコピーし、同じセルに値を上書き貼り付け ↓ (2)a列に(1)のセルの左隣のセル以下の数値がある行の、b列を削除 (画像の場合、(1)のセルがg1の場合、b2,b3を削除する) というのを、f列に数値がある行だけ繰り返すマクロの構文を教えてください。 大変お手数おかけいたしますが、どうぞよろしくお願いします。

  • 重複行削除のマクロ

    重複行を削除するマクロを作っていますが、うまくいきません。 2行目にタイトルが入っていて、3行目以降が必要なデータになります。 この中でA列が一致しているデータ行を削除したいと考えており、 重複データが削除された後、タイトル行がなぜか一番下の行にはりついてしまいます。 どなたか詳しい方助けてください!!!よろしくお願いします。 ちなみに以下が現在使用しているVBAコードです。 =============================================================== Sub GoodRemoveDuplicates() 'A列にデータが入力されており、そのデータを並べ替えた後、 '重複するデータが含まれている行を削除するマクロ Worksheets("貼り付け用用マクロ").Range("A1").Sort _ key1:=Worksheets("貼り付け用用マクロ").Range("A1") Set currentCell = Worksheets("貼り付け用用マクロ").Range("A1") Do While Not IsEmpty(currentCell) Set nextCell = currentCell.Offset(1, 0) If nextCell.Value = currentCell.Value Then currentCell.EntireRow.Delete End If Set currentCell = nextCell Loop End Sub ===============================================================

  • Excel 指定行削除マクロ

    Excel の表で、「行削除」ボタンを押したとき、次の手順で動くマクロを作りたいと思っています。 1.メッセージボックスで削除する行のクリックをうながす。 2.該当行がクリックされ、メッセージボックスのOKボタンが押される。 3.2番目のメッセージボックスに変えて、クリックされた行の A 列のセル(名称欄)   の値(○○)をボックスに取り込んで「○○を削除します」と表示させる。 4.OKボタンが押されたら、その行全体を削除する。 なるべく簡便な方法を教えてください。よろしくお願いします。

  • エクセル 網掛けしてあるセルの行を残してそれ以外の行を削除するVBA

    windows-xp、エクセル2003を使っています。 エクセルデータがA列からU列まであります。 (1000件程かな、時々AA列まである時もあります) G列には、網掛けしてあるセルがあります。 そこで!! 網掛けしてあるセルの行だけを残して、網掛けがされていない行のデータを一気に削除する!というマクロ(VBA)を作りたいのですが、どうすればよいでしょうか? VBAまだ、よくわかっていないので、初心者レベルでわかりやすく教えてくださると助かります。 宜しくお願い致しますm(_ _)m

  • 空白のセルを行削除する。EXCELマクロなのですが・・

    VBA初心者です。 データーをHPから、単純にコピーしてきて、 EXCELに貼り付けています。 フィルターをかけても、画像かなにかがセルに張り付いているのか、 空白行をすべて削除できません。 いろいろ試して(HPから、空白セルの行削除について書かれてあるマクロを貼り付けて)動いたのが、このVBAです。 しかし、遅いので、早いVBAに簡略できればいいのですが。。 大体、1000行ぐらいの文字を貼り付けて、3/1ぐらいが空白行です。A行のセルの空白のみを、削除したいのですが。  まったくの素人なので、わかりません。 どうかよろしくお願いいたします。 Sub 空白の削除() x% = Worksheets("sheet1").Range("A65536").End(xlUp).Row For i = x% To 1 Step -1 If Worksheets("sheet1").Cells(i, 1).Value = "" Then Worksheets("sheet1").Rows(i).Delete Next End Sub

専門家に質問してみよう