アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2010を使用しております。

初歩の質問になってしまいますが回答よろしくお願いいたします。

A行にデータが約1000件入っていて、これを4行ずつ削除したいと思っています。
形としては最終行から不要な4行(セルに入っている文字数字はランダムです)
を削除して2列上に動いて、A2まで削除したら止まる
でいいと思っているのですが、複数行指定から躓いております。
よろしければコードを教えて頂けませんかお願い致します。

方法がわからない現在は現在は2~5行指定デリート 7~10指定デリート… で手動でやっております(汗)

  A
1  必要
2   不要
3   不要
4   不要
5   不要
6  必要
7   不要
8   不要
9   不要
10  不要
11 必要



726 必要
727  不要
728  不要
729  不要
730  不要
731 必要
732  不要
733  不要
734  不要
735  不要

A 回答 (4件)

こんにちは!



データの最終行から4行削除 → 5行目を残しその2行上から4行を削除・・・
の繰り返しだとすると

Sub Sample1()
Dim i As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 5 Step -5
Rows(i - 3 & ":" & i).Delete
Next i
End Sub

こんな感じではどうでしょうか?

※ データ数は必ず5の倍数になっているという前提です。m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
前提条件があるのですね。

お礼日時:2014/10/24 22:01

1000行程度ならこんな感じで良いかと。


行数が、5で割ると1余る行のみ残して削除しています。
なお、削除は1行づつやってます。

Sub Sample()
  Application.ScreenUpdating = False
  nLast = Range("A1").End(xlDown).Row
  For nRow = nLast To 2 Step -1
    If nRow Mod 5 <> 1 Then Cells(nRow, 1).Delete Shift:=xlUp
  Next nRow
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
A列にという私の記載が悪かったのですが知りたいのは行の削除でした。
こちらの記載に関しても今後の参考にさせていただきます。

お礼日時:2014/10/24 21:41

今の操作を具体化すれば


2~5行目を削除
3~6行目を削除
の繰り返しですよね

ならば
Sub ボタン1_Click()
i = 2
Do While Range("A" & i).Value <> ""
Rows(i & ":" & i + 3).Delete Shift:=xlUp
i = i + 1
Loop
End Sub
でよろしいかと
    • good
    • 0
この回答へのお礼

ありがとうございます。
やりたいことがスマートにできました。

お礼日時:2014/10/24 22:02

>現在は2~5行指定デリート 7~10指定デリート… で手動でやっております(汗)



「実際に」行っているのはそうじゃないことを、実際にエクセルを触ってもう一度ご自分の目と手で確認してください。
で、それをマクロにすると、大体こんな感じになります。

sub macro1()
 dim r as long
 r = 2
 do until cells(r, "A") = ""
  rows(r & ":" & r+3).delete shift:=xlshiftup
  r = r + 1
 loop
end sub
    • good
    • 0
この回答へのお礼

ご回答有難うございます。
こちらの記載は最初の方と似てる形になっているのですが、エクセルの動きをマクロにしたという形でしょうか。
こちらもやりたい形になっていて参考になりました。

お礼日時:2014/10/24 22:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!