dポイントプレゼントキャンペーン実施中!

Excel VBAで

任意の行がキーボード操作でDeleteされる
もしくは
他の表にVBAでコピペ後にClearContentsで空白行になったとき

自動で上に行をつめることはできますか?

画像でいうと
B6:E6をDelete
もしくは
B6:E6をVBAでG3:J3にコピペごにClearContents

上記後に自動で空白行(B~E同時)をつめるVBAを教えて下さい。

コピペ部分のVBAは必要ないです。

よろしくおねがいします。

「Excel VBA 空白行をつめる」の質問画像

A 回答 (2件)

すでに回答は出ていますが、削除して上へ詰めるのであれば、これで十分ですよね?



Range("B6:E6").Delete Shift:=xlUp

ただ、過去の質問を読んでみると、それだけでは無いような気がします。
もしかして、罫線付きの表の行が、少なくなってしまうのが嫌なのでしょうか?
もしそうであれば、ClearContentsして枠だけになった部分を後方(下)に
移動させれば、見た目の行数は変わりません。
こんな感じです。余計なお世話だったら、無視してください。

With Range("B6:E6")
.ClearContents
.Cut
End With
Cells(Rows.Count, "C").End(xlUp).Offset(1, -1).Insert Shift:=xlDown
    • good
    • 0

おはようございます。


選択されているセルを削除して上に詰めるのであれば、Selection.Delete Shift:=xlUp となりますが、
実際に汎用性のあるものにするには、マクロの自動記録で行って参考にされる方法を勧めます。
他の処理をすでにマクロで行っているのであれば、良いかと思いますが、
単にその処理だけを行うのであれば、Excelの削除機能で十分だと思いますよ。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています