• ベストアンサー

【マクロ等】4行ごとに行を消したいのですが…

いつもお世話になっております。 最近Excelで作業をすることが多いのですが相手の会社より頂いたデーターがテンプレートの違い上読み込むと4行ごとにデータが表示されます。 (参考図) ■A B C D E F (1)100 (2) (3) (4) (5)200 (6) (7) (8) (9) (10)1000 … と言った感じで4行の空欄が入ってしまいます。 いつもこの4行を行の削除でマウスを右クリックして削除しているのですがデーター行が2000とかを超えると血の気が引きます。。。 どうにか一括で間4行を削除することはできないでしょうか? 必ずデータはA1からはじまり4行ごとに間が空きA5,A10…と数値が入る形です。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

「4行ごとに行を消したいのですが」とのご要望ですが、「A列が空白の行を削除する」というルールでも良いですか? A列を選択して「データ」→「フィルタ」→「オートフィルタ」でオートフィルタをかけます。プルダウンを開いて(空白セル)を選択するとA列が空白の行だけが表示されるので、行をまとめて選択して「右クリック」→「削除」で消せます。 余分ですがもしマクロが良いなら、以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択します。 Sub macro2() Dim idx As Long  With ActiveSheet   For idx = .Range("A65536").End(xlUp).Row To 1 Step -1    If .Cells(idx, "A").Value = "" Then     .Cells(idx, "A").EntireRow.Delete    End If   Next idx  End With End Sub

news_0203
質問者

お礼

マクロばかり考えていましたがオートフィルタで簡単に出来ました!! 以前より作業効率も十倍以上に上がりそうです!! #1~3の皆さんありがとう御座いました!!

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 私も、#1さんのおっしゃるように、オートフィルタで行えばよいと思いますね。 私なら、<空白以外のセル>を出しておいて、コピーで、別のシートに貼り付けてしまいます。あえて、オリジナルデータはいじりません。 また、マクロなら、完全な空白のセルを削除するなら、以下のようになります。これですと、一瞬に消えます。ただし、A列に対して判定していますから、注意してください。 Sub BlankRowDelete()  Application.ScreenUpdating = False  With Range("A1", Range("A65536"))   On Error Resume Next    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete   On Error GoTo 0  End With  Application.ScreenUpdating = True End Sub

noname#24040
noname#24040
回答No.2

Sub Test() Dim v As Variant For Each v In Range("A1", Range("A65536").End(xlUp)).Cells If v.Value = "" Then Range(v, v.Offset(3)).Delete End If Next End Sub 4行だけならこれでもできる。

関連するQ&A