人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

初歩的な質問ですが、EXCELのVBAにて、次の処理の検索した行から10行を削除という方法がわかりません。
「帳票レイアウトになっているシートの1列目に特定の文字があった場合に、その行から10行を削除」

●質問者: indp01
●カテゴリ:コンピュータ
✍キーワード:Excel VBA レイアウト 検索
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● dameningen
●18ポイント

http://www.hatena.ne.jp/awindow?qid=1097721240

Rows(”xxx:yyy”).Select

Selection.Delete Shift:=xlUp

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

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

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


2 ● きゃづみぃ
●18ポイント

http://www.hatena.ne.jp/awindow?

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

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

Selection.Delete Shift:=xlUp

その行から という場合は

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


3 ● cx20
●17ポイント

http://www.microsoft.com/japan/developer/library/off2000/vbaXL/x...

MSDN Online Japan : File Not Found

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


4 ● farside
●17ポイント

http://www.google.co.jp/

Google

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が含まれていた場合、という動作になります。

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ