• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelでの対象範囲行削除)

Excelでの対象範囲行削除方法について

このQ&Aのポイント
  • ExcelのVBAマクロを使って、指定の条件で特定の範囲の行を削除する方法について質問です。
  • 質問者はAセルに入っている文字列で比較し、範囲を抽出するマクロを作成したいと思っています。
  • 具体的な例を挙げて説明すると、Aセルのデータの中で特定の見出し行から次の見出し行の1行前までの範囲を抽出したいということです。

質問者が選んだベストアンサー

  • ベストアンサー
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

VBAの一例です。 TEST_bをセルA1に表示するまで行を削除する。 1.TEST_bが現れるまで上部セルを削除 2. TEST_bが現れるまで最終行から行を削除 Sub test() Sub test1() どちらでも同じ結果が得られるます。 ご参考まで。 Sub test() Dim i, MaxRow As Single i = 1 Do While Range("A" & i).Value <> "TEST_b" If Range("A" & i).Value <> "TEST_b" Then Rows(i).Delete Shift:=xlUp Else Exit Do End If Loop 'A列最終行取得 MaxRow = Cells(Rows.Count, 1).End(xlUp).Row i = MaxRow Do While Range("A" & i).Value <> "TEST_c" If Range("A" & i).Value <> "TEST_c" Then Rows(i).Delete Shift:=xlUp i = i - 1 Else Rows(i).Delete Shift:=xlUp Exit Do End If Loop End Sub Sub test2() Dim i, MaxRow As Single i = 1 Do While Range("A" & i).Value <> "TEST_b" If Range("A" & i).Value <> "TEST_b" Then Rows(i).Delete Shift:=xlUp Else Exit Do End If Loop 'A列最終行取得 MaxRow = Cells(Rows.Count, 1).End(xlUp).Row i = MaxRow Do While Range("A" & i).Value <> "TEST_b" If Range("A" & i).Value <> "TEST_b" Then Rows(i).Delete Shift:=xlUp i = i - 1 Else Exit Do End If Loop End Sub

3620313
質問者

お礼

回答ありがとうございます。望み通りのVBAです。助かりました。

その他の回答 (1)

noname#206655
noname#206655
回答No.1

行を削除してしまっては、正しく動かないと思う。 セルの値は削除可能だと思う。 もしくは、削除したあと、セルの内容を判断すれば可能かな。

3620313
質問者

補足

行を削除してしまっては、正しく動かないと思う。 →何故なのか理由が知りたいところです。

関連するQ&A

専門家に質問してみよう