Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10579 / 13646 ツリー ←次へ | 前へ→

【20982】特定の文字を含む行を削除 ぐっさん 05/1/5(水) 18:23 質問[未読]
【20994】Re:特定の文字を含む行を削除 Jaka 05/1/6(木) 9:31 回答[未読]
【20998】Re:特定の文字を含む行を削除 ぐっさん 05/1/6(木) 10:45 お礼[未読]
【21016】Re:特定の文字を含む行を削除 kobasan 05/1/6(木) 22:27 発言[未読]

【20982】特定の文字を含む行を削除
質問  ぐっさん  - 05/1/5(水) 18:23 -

引用なし
パスワード
   こんにちは。
初心者です。

特定の文字を含む行を削除するマクロを作成
しようとしているのですが、下記のようにしか
方法が調べられませんでした。下記だと”特定の文字列”と
全く同じではないと削除されず特定の文字列を含むという処理
はできません。どなたか方法をご存知の方がいましたら
ご教授願います。


Sub 削除()
Dim r As Long, MyMaxR As Long
'最初にデータの最終行を求める。
Application.ScreenUpdating = False
MyMaxR = Range("A" & Rows.Count).End(xlUp).Row
'最終行から上へ上りながら
For r = MyMaxR To 1 Step -1
If Range("A" & r).Value = "特定の文字列" Then
'  条件にあったら行を削除
  Rows(r).Delete
End If
Next r
Application.ScreenUpdating = True

End Sub

【20994】Re:特定の文字を含む行を削除
回答  Jaka  - 05/1/6(木) 9:31 -

引用なし
パスワード
   こんにちは。

オートフィルタを使った別解です。
1行目は、タイトル行か何かとして、空いているのが条件。

Dim rg As Range, 特定の文字 As String
特定の文字 = "い"
Range("A1", Range("A" & Rows.Count).End(xlUp)).AutoFilter Field:=1, Criteria1:="=*" & 特定の文字 & "*", Operator:=xlAnd
Set rg = Range("A2", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
ActiveSheet.AutoFilterMode = False
rg.EntireRow.Delete
Set rg = Nothinge

【20998】Re:特定の文字を含む行を削除
お礼  ぐっさん  - 05/1/6(木) 10:45 -

引用なし
パスワード
   kobasan 、Jaka さん回答ありがとうございました。
おかげでうまく処理することができました。
本当にありがとうございます。

【21016】Re:特定の文字を含む行を削除
発言  kobasan  - 05/1/6(木) 22:27 -

引用なし
パスワード
   ▼ぐっさん さん 今晩は

削除データが連続した場合、正しく動作しないことが分かりましたので、
訂正します。

Sub test()
Dim c As Range
Dim LastRow As Long
  fndkey = Range("e1").Value
  LastRow = Range("A65536").End(xlUp).Row
  For i = 1 To LastRow
    Set c = Cells(i, 1) '行削除
    If c.Value Like "*" & fndkey & "*" Then
      Rows(c.Row).Delete Shift:=xlUpe
      i = i - 1
    End If
  Next
End Sub

10579 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free