• ベストアンサー

Excell VBA:dataの空白行を削除したい。

excellのマクロを使って、 次のようなデータで、データのない行を削除して詰めたいのですが。 どうすればよいのでしょうか。   A   B   C 1 t1  **  ** 2 t2  **  ** 3 4 t3 5 6 t4  を 1 t1  **  ** 2 t2  **  ** 3 t3 4 t4  にしたい。

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

  • ベストアンサー
  • ahsblue
  • ベストアンサー率58% (23/39)
回答No.2

終了(データ件数)条件が不明ですので、6固定のサンプルです。 ポイントは、データ(行)の最後からループすることです。 そうすると、削除したデータと検索する位置が重ならないためすっきりとしたプログラムとなります。 Dim i As Integer For i = 6 To 1 Step -1 '6のところにデータ総件数(空行含む) If Cells(i, 1) = "" Then Rows(i).Delete End If Next i

telmi
質問者

お礼

簡単にできるんですね。 最後からループするのは、気づきませんでした。 使わせてもらいます。 ありがとうございました。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

手っ取り早いのは、 1.「行番号」の列を追加し連番を付与する。 2.列A(tの値の列)をキーにソートする。 3.そうすると「空白行」だけ固まりますから「行番号のみの行を削除」。 4.「行番号」列をキーにソートし直す。 5.最後に「行番号」列を削除する。 上記の手作業を「マクロの記録」で行えばVBAになるし、 そこまでしなくても、と思えば手作業でもたいした手間ではないと思います。 カーソルキーの操作でCtrl+矢印キーでその方向の端まで移動できるので 3.の処理はスクロールさせなくても可能です。 (範囲選択するならCtrl+Shift+矢印キーでok)

telmi
質問者

お礼

そういう方法があるんですね。 全然、思いつきませんでした。 参考になりました。 ありがとうございました。

回答No.1

他力本願ですが…。下記サイトを紹介します。

参考URL:
http://www2.odn.ne.jp/excel/waza/macro.html#SEC4
telmi
質問者

お礼

早速、見に行きました。 解説があって、いいですね。 参考になります。 ありがとうごさしました。

関連するQ&A