• ベストアンサー

【マクロ等】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

  • 行を削除するマクロ2

    a列には0から2の数値が入っています。 2行目から、a列の数値が2かつ最下の行(この画像の場合は12行目)までを削除するマクロのvbaの構文を教えてください。 ただし、a列の数値がすべて2未満の場合、行は削除しないようにしてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

  • 行を削除するマクロ

    a列には数値が入っています。 2行目から、a列の数値が最大かつ最下の行(この場合は12行目)までを削除するマクロのvbaの構文を教えてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

  • 条件に一致する行のみを選択し・・・

    全ての行のうち、C列にNote_on_cを含んでおり、かつI列が整数の行のみを選択し、それぞれの行のF列の数値を一括で加算/原産する方法はありますか? 例えば図の場合、15と20が整数かつNote_on_cという文字が入っているので、これらのF列の数値を一括で、+5したいのですが、どうすればよいのでしょうか。

  • エクセルマクロ 2行とびでAからCを削除

    毎月の150人分の給与データをエクセルにする必要があります。 csvデータを加工の途中で一名分のデータが3行になります。 その3行になった時点でそれぞれ各個人のデータの2行目に あたる部分のAからCを削除したいのですが、 例えば A2-C2, A5-C5, A8-C8, A11-C11 ........ A449-C449 を一括で削除する。 マクロでそういった記録は可能でしょうか?

  • 2行目と3行目を1行目に右側につけて、空白を削除してつめるコードが知りたいです。

    1 2 3 4 5 6 7 8 9 . . . A1「1」、A2「2」、A3「3」A4空白、A5「4」、、、と言う風なデータがあるの ですが、 これを 123 456 789 ... と言う風に2行目と3行目を1行目に右側につけて、空白を削除してつめるコー ドが知りたいです。 実際のデータは数値ではなく文字列です。 よろしくお願いします。

  • 2行にわたるデータを1行にしたい

    こんにちは。小川と申します。どなたか知恵を貸してください。 表の中のレコードデータが2行にわたるものを1行にしたいのです。 1レコードが1行目2行目にありますが、E2をE1とF1の間に、F2をF1とG1の間に入れて2行目を削除したい。 エクセルやアクセスなど手段はどれでもいいのですが、件数が5000件以上あるファイルが多数あり、とても手作業で出来ません。 どなたか知恵を貸してください。 よろしくお願いします。

  • 行削除のマクロ

    B列~F列にデータが入っていてB列の最終行の下セルを選択しクリップボードのデータを貼り付けた後、貼り付けたデータの最初の3行を削除するマクロを作っています。 Sub Macro1() ''Worksheets("Sheet1").Activate ' addrw = Range("b65536").End(xlUp).Offset(1).Row Cells(addrw, 2).PasteSpecial end sub これでB列の最終行の下にデータを貼り付けることまで出来たのですが貼り付けた最初の3行の削除の仕方がわかりません。 いい方法があれば教えていただけないでしょうか。  例えばB列の10行目まで既に入力されていた場合、11行目からクリップボードのデータを貼り付け(ここまでは上のプログラムで出来ました。)、11行目から13行目を削除したいのですがどうしたらいいでしょうか?

  • エクセルのマクロに詳しい方。

    現在、表を作っております。 そこで、 Aの行に追加があるごとに機械名とデータを入力していきたいのですが たとえば A1に『機種名』A2に『データ(数値)』A3『データ(数値)』A4・・・ といった感じでインプットボックス?みたいなのを 使って一括入力するにはどのようなマクロになりますか? できれば、プロシージャまで書いていただけると うれしいです。よろしくお願いします。

  • EXCELで分かれたシート間の同一データ行を自動削除して結合したい

    EXCELで、シート1、シート2に分かれたデータがあります。 それぞれのシート間でC列~F列の値が重複している行、シート1側のG列の数値がマイナス になっている行を自動で削除してからデータを1つのシートに結合する方法を探しています。 条件は、シート1側の重複データ行のみを削除し、シート2側のデータが必ず残る方法であ る必要があります。G列のマイナス行を削除するのはシート1側のみです。 シート1がA列~I列、約3万行、シート2がA列~K列、約1千行くらいです。 シート2側のみJ列~K列(数値データが入っています)が存在しますが、シート1側は空欄です。 列の数は変わりませんが、行数が都度変動しますのでマクロでコピー先のセル位置を決め打ちする 事が出来ません。 1つのシート上で重複するデータを削除する方法は見つける事が出来たのですが、残す方のデータ が指定出来ないのと、複数のシート上の重複データを削除する方法が見つかりませんでした。 何か良い方法がありましたら、ご教授下さい。

  • EXCELで列のデータを行に移行したい

    よろしくお願いします EXCEL2000を使用しています 現状ですが A・B・C・Dの条件に合うデータが最大20個(F~Y)入力してあります 必ず1つのデータが条件に当てはまるのでFに空欄はないです A・B・C・Dの条件は200行あります 希望の状態は F~YのデータをAに書き出し (最小1個×200行=200行 最大20個×200行=4000行) それぞれの値の条件A~Dのデータが そのデータのB~E入るようにしたいです VBを利用すれば早いと言うことはわかるのですが 作れないので質問させていただきました よろしくお願いします

専門家に質問してみよう