こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【Excel】空白行を削除するマクロ

Excel2003を使用しています。
マクロについて教えてください。
あるマクロを実行してできた表に、さらにマクロを実行して
例えばD:Dで空欄があったら、その行は削除するといったマクロを
作りたいのですが、どのようにしたらいいでしょうか?
マクロ初心者で参考書を片手に頑張りましたが
なかなかうまくいかず。。。(*_*)
よろしくお願いします!

投稿日時 - 2006-10-05 17:08:39

QNo.2452888

困ってます

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

こんばんは。

こんな風かな?

Sub BlankCellRowsDelete()
 Dim r As Range
 On Error Resume Next
 Set r = Range("D1", Range("D65536").End(xlUp)).SpecialCells(xlCellTypeBlanks)
 If Err.Number > 0 Then Exit Sub
 On Error GoTo 0
 r.EntireRow.Delete
End Sub

なお、D:D としなかったのは、Dの最後尾よりも、他の列のセルの最後尾のほうが後ろにあると、その間の行も含まるようなので、やめました。

投稿日時 - 2006-10-05 22:02:13

お礼

いつもありがとうございます。
Dの最後尾よりも、他の列のセルの最後尾のほうが後ろにあることも
ありえますね。参考になりました。

投稿日時 - 2006-10-12 09:04:57

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

こんな感じではどうでしょうか。

Sub Macro2()
Dim LastR, idxR As Long
 LastR = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
 For idxR = LastR To 1 Step -1
  If Application.CountA(Rows(idxR)) = 0 Then
   Rows(idxR).Delete
  End If
 Next idxR
End Sub

投稿日時 - 2006-10-05 19:07:36

お礼

お礼が遅くなり申し訳ありません。
回答ありがとうございました。

投稿日時 - 2006-10-12 08:59:44

ANo.3

以下の操作ステップを、マクロ自動記録してみたらいかがでしょうか。

1.まず、D:Dを選択。
2.次に、[編集]-[ジャンプ]-[セル選択] で空白セルにチェックして[OK]。
3.最後に、[編集]-[削除] で「行全体」を指定して[OK]。

投稿日時 - 2006-10-05 17:55:15

お礼

マクロを記録する方法もありましたね。
作ることばかり考えていました。
試してみます。ありがとうございました。

投稿日時 - 2006-10-06 00:23:32

ANo.2

即興で作ってみましたが、こんなのどうでしょう?

Sub Macro1()

Dim r, c As Long
Dim i, t As Long
Dim flg As Boolean

'画面のちらつきを押さえる為
Application.ScreenUpdating = False

'シート内の使用されている範囲を取得
r = ActiveSheet.UsedRange.Rows.Count
c = ActiveSheet.UsedRange.Columns.Count

'下から上へ行ごとのループ
For i = r To 1 Step -1

'左から右へ列ごとのループ
flg = True
For t = 1 To c
If (Not IsEmpty(ActiveSheet.Cells(i, t).Value)) Then
'セルに値が入っていれば削除フラグを立てずにループを抜ける
flg = False
Exit For
End If
Next t

'列ごとのループを抜けてもフラグが立ったままであれば空白行なので削除
If (flg) Then
ActiveSheet.Rows(i).Delete Shift:=xlUp
End If
Next i

'画面の更新を有効に戻す
Application.ScreenUpdating = True

End Sub


ポイントは行のループは下から上へ遷移することです。
なぜなら行を削除すると行がずれる(上に1段上がる)からです。
Excel2000でしか試していないので2003で動くかどうか・・・^^;

投稿日時 - 2006-10-05 17:34:34

お礼

即興でこれだけのものが作れるなんてすごいですね!
せっかく作っていただきましたので、Excel2003でも試してみます。
ありがとうございました。

投稿日時 - 2006-10-06 00:21:22

ANo.1

私もマクロに関しては、超初心者なので以下のサイトを参照して下さい。

参考URL:http://www2.odn.ne.jp/excel/waza/

投稿日時 - 2006-10-05 17:32:01

お礼

便利なサイトを教えていただき助かりました。
今後も活用させていただきます。
ありがとうございました!

投稿日時 - 2006-10-06 00:18:01

あなたにオススメの質問