プロが教えるわが家の防犯対策術!

題名通り、奇数行を一括に削除する方法をご存じの方はご教授下さい。
○○┌────┬────┬─────┬──
1行 │(空白)│文字列 │(空白) │
2行 │ 文字列 │文字列 │ 数式 │
○○└────┴────┴─────┴──
3行 │(空白)│文字列 │(空白) │
4行 │ 文字列 │文字列 │ 数式 │
○○└────┴────┴─────┴──

この形式が数段、数シートに渡ってあります。

○○┌────┬────┬─────┬──
1行 │ 文字列 │文字列 │ 数式 │
○○└────┴────┴─────┴──
2行 │ 文字列 │文字列 │ 数式 │
○○└────┴────┴─────┴──
上記のように2行を1行にしたいのですが、一括でできるのでしょうか。
よろしくお願いします。

A 回答 (4件)

こんにちは。

maruru01です。

単純に削除するだけなら、作業列を準備して、1行目に、

=MOD(ROW(),2)

と入力して、データ最下行までコピーします。
これで、奇数行が「1」、偶数行が「0」をなりますので、
後は、この列で「1」でフィルタリングして削除すればいいと思います。
終わったら、作業列は削除して下さい。
    • good
    • 1
この回答へのお礼

早速ありがとうございます。この方法ですることは出来ました。しかし、複数シートを一括にできないでしょうか。

お礼日時:2005/06/03 17:47

自信はありませんが、複数シートを一度にというのであればVBAマクロを使うと良いと思います。


ツール→マクロ→Visual Basic Editor から
挿入→標準モジュール を開いて
そこに次の---の間にある マクロを貼り付けてください
ただしこれは A列が1行おきに空白だということを前提にしています。
もとのデータが壊れると大変ですので一度保存してから上の作業をしてください。
------------------------
Sub 不用行削除()

Dim i As Integer
Dim R As Long
Dim LastR As Long

Application.ScreenUpdating = False
For i = 1 To Worksheets.Count
Sheets(i).Select

LastR = Range("A" & Rows.Count).End(xlUp).Row
For R = LastR - 1 To 1 Step -2
If Range("A" & R) = "" Then
Range("A" & R).EntireRow.Delete
End If
Next R
Next i

End Sub
-------------------
説明が下手ですが
i は シート数をカウントするための変数
R は 削除する行を決めるため
LastR は データのある最後の行を求めています。

いくつのシートがあるかまた何行までデータが入っているかを調べて、各々のシートごとに 最後の行の1つ上のA列は空白のはずなので2行おきに削除するようにしています。これを使えば奇数行にデータが入っていて遇数行が不用でもOKだと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
1行ごとの全ての行が空白とは限らないので使えませんでした。空白だったら、ばっちりです。

お礼日時:2005/06/07 12:26

関数で「行削除」列削除はできません。

関数は値を計算するが、行や列を削除したり、幅や色や書式に関することを左右できません。
だから、別シートや別セルの区画に「抜き出す」と考えればよいのです。
Sheet2にあるデータの偶数行を抜き出すには
Sheet3のA1に
=INDIRECT("sheet2!a"&ROW(A1)*2)
と入れて式を縦方向に複写すればよい。
Sheet4の分ももやりたいなら、Sheet2のデータ行の半分で式の複写をやめ、Sheet4用の式を入れて、そこから下に式を複写すればよい。
=INDIRECT("sheet4!a"&(ROW(A13)-12)*2)
のようになります。
Sheet2の半分が12行(全体で24行)で終わる場合の例です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試したのですが、2列目、3列目、・・・・がうまくできませんでした。それと、数式の値だけが表示されます。

お礼日時:2005/06/07 12:20

行先頭の列が常に空白なら、その列を基準に並び替えを行い、不要な行を一括削除すれば簡単ですが、如何でしょうか。



並び替え:データ⇒並び替え⇒最優先されるキー(例えばA列)
    • good
    • 0
この回答へのお礼

ありがとうございます。
空白ばかりではないので、試したのですが一行ずつ削除することが出来ませんでした。

お礼日時:2005/06/07 12:00

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