- ベストアンサー
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 にしたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
終了(データ件数)条件が不明ですので、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
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
手っ取り早いのは、 1.「行番号」の列を追加し連番を付与する。 2.列A(tの値の列)をキーにソートする。 3.そうすると「空白行」だけ固まりますから「行番号のみの行を削除」。 4.「行番号」列をキーにソートし直す。 5.最後に「行番号」列を削除する。 上記の手作業を「マクロの記録」で行えばVBAになるし、 そこまでしなくても、と思えば手作業でもたいした手間ではないと思います。 カーソルキーの操作でCtrl+矢印キーでその方向の端まで移動できるので 3.の処理はスクロールさせなくても可能です。 (範囲選択するならCtrl+Shift+矢印キーでok)
お礼
そういう方法があるんですね。 全然、思いつきませんでした。 参考になりました。 ありがとうございました。
- HitomiKurose
- ベストアンサー率38% (54/141)
他力本願ですが…。下記サイトを紹介します。
お礼
早速、見に行きました。 解説があって、いいですね。 参考になります。 ありがとうごさしました。
お礼
簡単にできるんですね。 最後からループするのは、気づきませんでした。 使わせてもらいます。 ありがとうございました。