• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:削除して空白になった行を下から詰めたい)

Excel VBAで任意の行のセルを削除して下に詰めるマクロを作成する方法

このQ&Aのポイント
  • Excel VBAを使用して、任意の行のセルを削除し、下に詰めるマクロを作成する方法を紹介します。
  • このマクロを使用すると、任意の行のセルを選択した状態で実行することで、その行のB列からR列までのセルが削除され、下に詰められます。
  • この方法を使用することで、番号が割り振られているA列のセルを消すことなく、データが上から下に詰められます。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

> 罫線や背景色もすべて消えてしまいました。文字だけを消す方法はあるでしょうか。。 「削除」ってそういうものなんですけどね。 これはどうかな Sub test()   Dim nRow   nRow = Selection.Row   If nRow < 999 Then     Range("B" & nRow & ":R998") = Range("B" & nRow + 1 & ":R999").Value   End If   Range("B999:R999").ClearContents End Sub

tikoringoo
質問者

お礼

ありがとうございます! ばっちり動きました。早くお答えいただき本当に助かりました!

その他の回答 (2)

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

複数のセルを同時に選択していても作動します。 sub macro1 application.intersect(range("B:R"), selection.entirerow).delete shift:=xlshiftup end sub

tikoringoo
質問者

お礼

ありがとうございます! びっくりしました(・・;)こんな短い間で色々と要望以上のことができてしまって・・ でも本当に本当に申し訳ないです; nao-yさんと同じようにやはり罫線や背景色が消えてしまって戸惑っています; 私の説明不足です。本来なら新たに質問をやり直すべきなのですが皆さんの貴重な ご回答をいただいたので、もしわかるようであればおしえていただければ幸いです;

  • nao-y
  • ベストアンサー率58% (111/190)
回答No.1

このコードでいけると思います。 お試しください。 Sub example() Dim myRow As String myRow = Selection.Row Range("B" & myRow & ":R" & myRow).Delete shift:=xlUp End Sub

tikoringoo
質問者

お礼

ありがとうございます!しかし、このマクロを実行すると、セルそのものが消えてしまい、 罫線や背景色もすべて消えてしまいました。文字だけを消す方法はあるでしょうか。。 あとB1~R999のセル以外はロックをして選択できないようになっています。ロックを解除 すると上記マクロは実行できるのですがロックをするとエラーが出てしまいました(;_;) そこまで質問の中に書いていなかったので説明分不足でした。大変失礼しました。 もしわかるようであれば教えていただければすごく助かります;