ここから本文です

エクセルのvBAである行を検索して、また、その行だけを削除することってできま...

tok********さん

2011/4/1607:41:42

エクセルのvBAである行を検索して、また、その行だけを削除することってできますか?どのなたかご教授願います

閲覧数:
3,158
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

rut********さん

2011/4/1609:09:23

すごく簡単なサンプルです。
参考までに。

Sub sample1()
'行番号を指定して削除
Dim delRow As Long

delRow = 10 '削除する行番号
ActiveSheet.Cells(delRow, 1).EntireRow.Delete
End Sub

Sub sample2()
'検索した文字を含む行を削除
Dim delRng As Range
Dim delWord As String

delWord = "あいう" '検索文字
'完全一致でシート全体を検索
Set delRng = ActiveSheet.Cells.Find(what:=delWord, LookAt:=xlWhole)
If Not delRng Is Nothing Then
delRng.EntireRow.Delete '検索値があった場合に実行
End If
End Sub

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

har********さん

2011/4/1609:35:31

写真のように
A1に6と入力してTry1を実行すると6行目が完全に削除されます。
Sub Try1()
Dim R As Range
Dim MyR As Range
Set MyR = Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each R In MyR
If R.Row = Range("A1") Then
R.EntireRow.Delete
End If
Next
End Sub

また、文字を検索して、合致した行を完全に行削除はTry2のマクロです
B1に検索文字を入れて、行削除です
Sub Try2()
Dim i As Long
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = Cells(1, 2) Then
Cells(i, 1).EntireRow.Delete
End If
If Cells(i, 1) <> Cells(1, 2) Then
MsgBox "その文字はありません"
End If
Next
End Sub

写真のように
A1に6と入力してTry1を実行すると6行目が完全に削除されます。
Sub Try1()...

プロフィール画像

カテゴリマスター

tac********さん

2011/4/1608:00:41

”マクロの記録”を行えば雛型は出来ます、後はそれを汎用的に使えるように改造すれば完成です。

取りあえず、雛型を作って下さい。
汎用的にするにはどうすれば良いかをその後に(そのコードを添付して)質問して下さい。

マクロの記録の使い方は下記をご覧ください。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる