エクセルで、選択した範囲内の行を「1行おきに削除したい」場合、以下の内容をマクロに貼り付け、実行します。
Sub DeleteAlternateRows() Dim lngLop As Long Dim intLftCol As Integer Dim intRgtCol As Integer intLftCol = Selection(1).Column intRgtCol = Selection(Selection.Count).Column Application.ScreenUpdating = False For lngLop = Selection(Selection.Count).Row To Selection(1).Row Step -2 Range(Cells(lngLop, intLftCol), Cells(lngLop, intRgtCol)).Delete (xlShiftUp) Next lngLop Application.ScreenUpdating = True End Sub
※画面は、Microsfot Office365のものですが、Excel2010、2013でも同様だと思われます。
ちなみに、マクロ付きのエクセルファイルは、拡張子「.xlsx」で保存できないので、EXcelマクロ有効ブック「.xlsm」で保存します。
仕事でダウンロードしたとあるcsvデータが、1行おきに不要なデータが入っていたので、作成して使っていました。
同じような悩みを持っている方のお役に立てば幸いです。
※マクロは一度実行すると、「元に戻す」ことができないので、必ずマクロ実行前には、ファイルを保存するなどしてバックアップをとっておきましょう!
View Comments
これ偶数行が削除されますね。
> Alsaさん
たしかに!
記事内の文言が間違っていましたね・・!
教えて頂きありがとうございます・・・修正していきます。