[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ自動記録 最終行の削除』(masa)
A B C D 1 機関 料金 送料 合計 2 あ社 100 80 180 3 あ社 50 80 130 4 あ社計 310 5 い社 105 90 195 6 い社 70 0 70 7 い社 105 120 225 8 い社計 490 9 う社 50 80 130 10 う社計 130 . . . 176 総計 54,321
150〜200件のデータを「ソート」→「データ⇒集計」する処理を 自動記録で作成したマクロで実行しています。 ”総計”の行が 不要なのでコードを足して削除したいのですが、自動記録では
Range("A1").Select Selection.End(xlDown).Select Rows("176:176").Select Selection.Delete Shift:=xlUp End Sub
となりました。最終行が176行目ではない時にも使えるようにするには どのように書き換えればいいでしょうか。単純ですみません。
私のスキルでは、これがいい方法なのかは、分かりませんが、 Dim r As Integer r = Range("A65536").End(xlUp).Row Rows(r).Delete Shift:=xlUp で出来ます。(ケン)
(ケン)さんありがとうございました。できました。 自動記録してコード見て…の繰り返しでマクロ勉強中なのですが 自分が操作できる範囲のことしかわからなくて。 (^^; 今は、VBE上で列幅の数字かえたり TrueとFalseを入れ替えたりして 遊んでるだけですがおもしろいですね、マクロ。 がんばります。 (masa)
これでもできますよ。
Range("A65536").End(xlUp).EntireRow.Delete Shift:=xlUp
(INA)
(INA)さんありがとうございました。私にもできました。
ふと疑問なのですけど、(ケン)さん(INA)さんお二人の方法 どちらも "A65536"を含むのは、エクセルの限界行(という言い方しますか?)から データの最終行までを削除する作業だと考えていいですか? それは、データの途中に空白セルがある場合を考慮したからなのでしょうか? 列Aには空白セルがない場合、こう変えるとおかしいのですか?
Range("A1").Select Dim r As Integer r = Selection.End(xlDown).Row Rows(r).Delete Shift:=xlUp
または
Selection.End(xlDown).EntireRow.Delete Shift:=xlUp
試しつつ変更しつつエラーと格闘しながら。よくわかっていなくてすみません。 (masa)
考え方はあってますよ。\(^o^)
データが連続して入っているなら、A1から Ctrl + ↓ で問題ないです。
(Endプロパティは、ctrl + 矢印 のショートカットを自動記録したのと同じです)
Range("A1").End(xlDown).EntireRow.Delete Shift:=xlUp
(INA)
EntireRow勉強になりました。最初に Range("A1").End(xlDown).Rows.Delete Shift:=xlUp として出来なかったので・・・ 有難うございます。(ケン)
私も勉強になりました。 ありがとうございます。
マクロの勉強って外国語習得の過程に似てますね。 ここは頼れる通訳の先生がたくさんいらして心強いです。 また困った時にはよろしくお願いいたします。 (masa)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.