初歩的な質問ですが、EXCELのVBAにて、次の処理の検索した行から10行を削除という方法がわかりません。

「帳票レイアウトになっているシートの1列目に特定の文字があった場合に、その行から10行を削除」

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/10/14 11:34:00
  • 終了:--

回答(4件)

id:dameningen No.1

dameningen回答回数33ベストアンサー獲得回数02004/10/14 11:43:45

ポイント18pt

Rows(”xxx:yyy”).Select

Selection.Delete Shift:=xlUp

xxx行からyyy行まで削除っていうのは上みたいな感じでどうでしょう。

検索で特定の文字を見つけたときにその行番号を取得して、

それとxxxとすればできるんじゃないかと。

id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982004/10/14 11:44:30

ポイント18pt

アクティブセルの次の行から10行を削除するには 以下のようにします。

ActiveCell.Rows(”2:11”).EntireRow.Select

Selection.Delete Shift:=xlUp

その行から という場合は

”2:11” の個所を ”1:10” とすればいいです。

id:cx20 No.3

cx20回答回数607ベストアンサー獲得回数1082004/10/14 16:57:59

ポイント17pt

URL はダミーです。

「帳票レイアウトになっているシート」という表現がよく分からないのですが、

「印刷範囲の設定をしてあるシート」という認識でよろしいでしょうか?

以下のコードは 指定範囲(1列目から文字列を検索し、見つかった場所から指定行分選択)

を削除するサンプルプログラムです。

Option Explicit

Sub Main()

Dim strFind

Dim nLine

strFind = ”End of Page” ’ 検索するキーワード

nLine = 10 ’ 削除する行数

Call RemovePrintArea(strFind, nLine)

End Sub

Function RemovePrintArea(ByVal strFind, ByVal nLine)

’ 印刷設定エリアを取得

Dim strPrintArea

strPrintArea = ActiveSheet.PageSetup.PrintArea

Dim objRange

Set objRange = Range(strPrintArea)

Dim objRow

’ 印刷設定エリアの行数分ループ

For Each objRow In objRange.Rows

’ 印刷設定エリアの1列目にキーワードがあったら後続行(nLine)を削除

If objRow.Cells(1, 1) = strFind Then

Dim nFrom

Dim nTo

Dim strRow

nFrom = objRow.row + 1 ’ 開始位置を取得

nTo = objRow.row + 1 + nLine ’ 終了位置を取得

strRow = nFrom & ”:” & nTo

Rows(strRow).Select ’ 範囲選択(開始位置:終了位置)

Selection.Delete ’ 選択した範囲を削除

Exit For ’ ループを抜けます

End If

Next

End Function

id:farside No.4

farside回答回数16ベストアンサー獲得回数02004/10/14 22:20:53

ポイント17pt

URLはダミーです。

検索するループまで含めると、次のようなコードでいかがでしょうか。

last = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).row

For row = 1 To last

If Cells(row, 1).Value = ”xxx” Then

Rows(Format(row) + ”:” + Format(row + 9)).EntireRow.Delete Shift:=xlUp

last = last - 10

End If

Next

If InStr(Cells(row, 1).Value, ”xxx”) > 0 Then

に変更すると、1列目にxxxが含まれていた場合、という動作になります。

id:indp01

皆さんありがとうございました。

2004/10/19 16:24:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません