重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

9列目から、奇数の列を削除するマクロの式がわかりません。
説明では分かりにくいので画像を添付しております。
☆1項目2列使っている表を1項目1列にしたい。

①画像では、赤丸を付けた部分(グラフの二行目)をすべて削除し、上詰めしたいです。
※9,11,13~と削除していきたい。

②このシートの表の終わりは15列目になっていますが、他のシートは25列で終わりだったりとばらばらです。(表の始まりはどのシートも同じ列、行です。)

③列を削除した際、表の下線が消えると思います。消した線も復活させたいです。

④そして、すべてのシートでこのマクロの処理をしたいと考えているので、
「表が終わるまでこの処理をする」というマクロも知りたいです。


分かりにくい文章、また、複数の質問になりますが、
マクロ初心者で大変困っています。どなたか回答をお願いいたします。

「【マクロ】特定の位置から奇数の行を削除す」の質問画像

A 回答 (2件)

表の最終行は、添付された画像のように項目が入っていなくて罫線のみがあるという形なのでしょうか。



Sub dltoddrow()

Dim i As Long
i = 9
Do While Cells(i, 1).Borders(xlEdgeBottom).LineStyle = xlContinuous
Rows(i).Delete
i = i + 1
Loop

Range(Cells(i - 2, 1), Cells(i - 2, 5)).Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub

これで奇数行のみ、罫線のある部分だけ削除されます。罫線が実線ではない場合は、「xlContinuous」の部分を線種に合わせてください。

どの列まで罫線があるか分からないので、とりあえずE列まで罫線を引いています。
伸ばす場合は「Cells(i - 2, 5)」の5を適宜変更してください。
    • good
    • 1
この回答へのお礼

さっそくの回答ありがとうございました!
私のやりたかった作業ができ、感謝しております!

お礼日時:2015/05/21 10:44

>9列目から、奇数の列を削除する


9「行」目から、奇数の「行」を削除、でよいですね?

行や列の削除はお尻からループを回しましょう。
画面のちらつきを抑えておくとよいです。

★★★削除後は回復できませんので必ずダミーデータでお試しください★★★
たとえば。
Dim r As Integer
Application.ScreenUpdating=False
For r= 15 To 9 Step -2
   Rows(r).Delete
Next r

最終行の取得は別の質問にも書いた通りです。
罫線も後から引けばよいです。
全シートならば、

Dim k As Integer
For k= 1 To Worksheets.Count
   この中に処理内容
Next k

のようにループするとよいです。
    • good
    • 2
この回答へのお礼

回答ありがとうございました!
急ぎの質問でしたのでさっそく回答をいただき、大変感謝しております。
エクセル自体が初心者で、少し理解できない部分がありましたので、
今回のベストアンサーは別の方にさせていただきました。
せっかく教えていただいたのに、すみません。
本当にありがとうございました!!!

お礼日時:2015/05/21 10:51

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