アプリ版:「スタンプのみでお礼する」機能のリリースについて

excellのマクロを使って、
次のようなデータで、データのない行を削除して詰めたいのですが。
どうすればよいのでしょうか。

  A   B   C
1 t1  **  **
2 t2  **  **

4 t3

6 t4

 を

1 t1  **  **
2 t2  **  **
3 t3
4 t4

 にしたい。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/28 09:59

手っ取り早いのは、


1.「行番号」の列を追加し連番を付与する。
2.列A(tの値の列)をキーにソートする。
3.そうすると「空白行」だけ固まりますから「行番号のみの行を削除」。
4.「行番号」列をキーにソートし直す。
5.最後に「行番号」列を削除する。

上記の手作業を「マクロの記録」で行えばVBAになるし、
そこまでしなくても、と思えば手作業でもたいした手間ではないと思います。

カーソルキーの操作でCtrl+矢印キーでその方向の端まで移動できるので
3.の処理はスクロールさせなくても可能です。
(範囲選択するならCtrl+Shift+矢印キーでok)
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2001/07/28 10:04

他力本願ですが…。

下記サイトを紹介します。

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html#SEC4
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/28 10:01

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