Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4921 / 13644 ツリー ←次へ | 前へ→

【53574】1行飛ばして2行ずつ削除するマクロ ひさ 08/1/23(水) 2:33 質問[未読]
【53575】Re:1行飛ばして2行ずつ削除するマクロ かみちゃん 08/1/23(水) 2:41 発言[未読]
【53591】Re:1行飛ばして2行ずつ削除するマクロ りん 08/1/23(水) 21:07 回答[未読]
【53600】Re:1行飛ばして2行ずつ削除するマクロ ひさ 08/1/24(木) 0:21 お礼[未読]
【53599】Re:1行飛ばして2行ずつ削除するマクロ ひさ 08/1/24(木) 0:17 お礼[未読]

【53574】1行飛ばして2行ずつ削除するマクロ
質問  ひさ  - 08/1/23(水) 2:33 -

引用なし
パスワード
   お世話になります。
    
1行目 あああああ
2行目 いいいいい
3行目 ううううう
4行目 えええええ
5行目 おおおおお
6行目 かかかかか
7行目 ききききき
8行目 くくくくく
9行目 けけけけけ
10行目 こここここ

上記のようなとき、マクロの実行により
2行目・3行目、5行目・6行目、8行目・9行目
が自動で、一気に削除され、上につめられる(1,4,7、10行目が残る)
ようなマクロを作成したいです。

よろしくお願いいたします。

【53575】Re:1行飛ばして2行ずつ削除するマクロ
発言  かみちゃん  - 08/1/23(水) 2:41 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>1行目 あああああ
>2行目 いいいいい
>3行目 ううううう
>4行目 えええええ
>5行目 おおおおお
>6行目 かかかかか
>7行目 ききききき
>8行目 くくくくく
>9行目 けけけけけ
>10行目 こここここ
>
>上記のようなとき、マクロの実行により
>2行目・3行目、5行目・6行目、8行目・9行目
>が自動で、一気に削除され、上につめられる(1,4,7、10行目が残る)
>ようなマクロを作成したいです。

行削除は、下の行から上方向に削除していくのが定石となっています。
今回の場合は、1行飛ばして2行ずつ削除ということなので、少しコツがいります。
以下のような感じでできると思いますので、後は、実際のものにあわせて考えてみてください。

Sub Sample()
 Dim lngRow As Long
 
 For lngRow = 10 - 2 To 1 Step -3
  Rows(lngRow).Resize(2).Delete
 Next
End Sub

【53591】Re:1行飛ばして2行ずつ削除するマクロ
回答  りん E-MAIL  - 08/1/23(水) 21:07 -

引用なし
パスワード
   こんばんわ。

>>1行目 あああああ
>>2行目 いいいいい
>>3行目 ううううう
>>4行目 えええええ
>>5行目 おおおおお
>>6行目 かかかかか
>>7行目 ききききき
>>8行目 くくくくく
>>9行目 けけけけけ
>>10行目 こここここ

>>一気に削除され、上につめられる(1,4,7、10行目が残る)
>>ようなマクロを作成したいです。
該当するセル範囲をオブジェクト変数にセットして、まとめて削除する方法です。

Sub test()
  Dim r1 As Range, II As Long
  For II = 1 To 10
   If II Mod 3 = 1 Then
     '1,4,7,10・・・ではなにもしない
   Else
     If r1 Is Nothing Then
      '初回はセット
      Set r1 = Cells(II, 1)
     Else
      'それ以降は合体
      Set r1 = Application.Union(r1, Cells(II, 1))
     End If
   End If
  Next
  '行全体を削除
  r1.EntireRow.Delete
  '終了
  Set r1 = Nothing
End Sub

こんな感じです。

【53599】Re:1行飛ばして2行ずつ削除するマクロ
お礼  ひさ  - 08/1/24(木) 0:17 -

引用なし
パスワード
   できました。ありがとうございました。

下から消されていくんですね。。。

【53600】Re:1行飛ばして2行ずつ削除するマクロ
お礼  ひさ  - 08/1/24(木) 0:21 -

引用なし
パスワード
   りん さん、ありがとうございます。

こちらの方法でもできました。

たいへん勉強になりました。

4921 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free