- ベストアンサー
EXCEL マクロで下から10行目までを削除する方法
はじめまして。 EXCELでhistory.csvというファイルを読み込んで指定列をコピーし 貼り付けるマクロを作って使用しています。 そのcsvファイルはどんどん更新されて行が増えていきます。 できればコピーする前に、下から10行目までを削除した後に コピペしたいのですが、下から10行目までというような行の指定方法は あるのでしょうか。 上級者の方々、アドバイスをいただけないでしょうか。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 列は全列で、下から10行目までを削除する場合 > どのようにマクロに書けばいいのでしょうか Sub test() Dim mDeleteRows As Integer mDeleteRows = 10 If Range("A" & Rows.Count).End(xlUp).Row - mDeleteRows + 1 > 0 Then Rows(Range("A" & Rows.Count).End(xlUp).Row - mDeleteRows + 1 & ":" & Range("A" & Rows.Count).End(xlUp).Row).Delete Shift:=xlUp End If End Sub でいかがですか
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 本当は、history.csv から始まるような気もしますが、この程度でよいのでしょうか。 Sub DeleteTest1() Dim i As Long Dim j As Long 'ユーザー入力 j = 15 '削除する行 If j <= 0 Then Exit Sub With ActiveSheet i = .Cells(Rows.Count, 1).End(xlUp).Row '最終行を求める If i > j Then i = i - j + 1 Else j = i: i = 1 End If Application.ScreenUpdating = False .Cells(i, 1).Resize(j).EntireRow.Delete Application.ScreenUpdating = True End With End Sub
お礼
お答えいただきありがとうございます。 いろんな方法があるんですね。 勉強になりました。
- turuzou
- ベストアンサー率33% (15/45)
既出の回答や下記なども参考になると思います。 行列操作 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20004.html の 挿入・削除 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv204.html#1 や 範囲選択 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20006.html の 範囲を検出して選択 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv206.html#2 等 Sub test() '2~4を削除 Dim x, y x = 2 '上端行 y = 4 '下端行 Rows(x & ":" & y).Delete End Sub 確認用のSheetで確認しながら、ご自分で変更してみてください。
お礼
お答えいただきありがとうございました。
- myRange
- ベストアンサー率71% (339/472)
'----------------------------------- Sub Test() Dim myTarget As Range Set myTarget = Cells(Rows.Count, "A").End(xlUp) On Error Resume Next myTarget.Offset(-9).Resize(10, 1).EntireRow.Delete xlUp End Sub '------------------------------------- 当然ながら、データが10以下の場合は Deleteのところでエラーが出るので On Error Resume Next これで、エラーを回避(削除しない)してます。 以上です。
お礼
お答えいただきありがとうございます。 いろんな方法があるんですね。 勉強になりました。
補足
どうもありがとうございます。 助かりました。 ところで参考までに教えていただきたいのですが、 もし15行目までを削除の場合には、 myTarget.Offset(-14).Resize(15, 1).EntireRow.Delete xlUp 2ヶ所変えればいいのでしょうか。 よろしくお願いします。
- kmetu
- ベストアンサー率41% (562/1346)
Range("A" & Rows.Count).End(xlUp).Row - 10 でA列の下から10行引いた行数が分かります。
お礼
お答えいただきありがとうございます。 ちょっとやってみたのですがよくわかりませんでした。 列は全列で、下から10行目までを削除する場合 どのようにマクロに書けばいいのでしょうか。 よろしくお願いします。
お礼
お答えいただきありがとうございます。 いろんな方法があるんですね。 勉強になりました。