プロが教える店舗&オフィスのセキュリティ対策術

特定の文字列を含む行を削除する方法が知りたいです。

行を削除する方法はWebで見つけたのですが↓
----------------------------------------------------
Sub 特定の文字列を含む行を削除()
Dim c As Range
Dim myRow As Long

With Range("A:A")

Set c = .Find("特定の文字列")

Do While Not c Is Nothing
Rows(c.Row).Delete shift:=xlUp

Set c = .Find("特定の文字列")
Loop
End With
End Sub

----------------------------------------------------
↑行を指定している箇所のRowsを Columns  RowをColomn に変更して以下の様にしてみました、

  Columns(Colomn,c).Delete shift:=xlUp

だめでした、、、。
VBAの知識が乏しく、組み立て方について理解が無いため、どうすればよいかさっぱりわからず、、
こちらで質問させて頂きました。。。

何卒宜しくお願い致します。

A 回答 (1件)

(1)FindはFindNextと組み合わせて使うこと、お呼び該当の四あごの次になって打ち切りのコードが難しい。

初心者は避けるべきだ。
(2)もうひとつ削除するとFor Nextに変数が行を指定するのが狂うのでやりにくい。
(3)行削除は、エクセルの処理に時間がかかる。
最低ScreenUpdating=Falseは入れる。
先ほども質問にあったが、削除するのでなく、残すべきものを別シートに持っていって書き出すほうがやさしい。
ーー
A列aのセルを削除するなら、A列が、aでない行のデータを、Sheet2に書き出せば仕舞い。
ーー
または下の行から上に行ポインターを変化させて削除すれば、(2)は避けられる。For NextでStep -1を使う
これを参考にやってみたら。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
初心者が使えるようなマクロではなかったのですね。。。
回答頂いた内容も、まだ理解が出来ていない面がありますが、
削除するのではなく、残すものを別のシートに貼っていくことにします。

「ScreenUpdating=False」や「。For NextでStep -1を使う」など
正直理解できていないのですが、調べながら仕上げます!!

細かくアドバイスくださり、
本当にありがとうございました!!

お礼日時:2011/02/04 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!