こんにちは。
特定の文字列が複数あって、その文字列があったときに行ごと削除を行いたいです。
行を削除するマクロは別の方が質問をしていて、コードは分かったのですが、
”特定の文字列”が2つ以上ある場合のコードを教えていただきたいです。
行を削除するマクロは以下の通りです。
----------------------------------------------------
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
----------------------------------------------------
Set c = .Find("特定の文字列")の"特定の文字列"を右側へ増やしたりしてみたのですが、
そもそもの考え方が違うのだろうな…と思いました。
詳しい方、何卒よろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
こんにちは!
色々やり方はありますが、一例です。
尚、1行目は項目行でデータは2行目以降にあるという前提です。
まずオートフィルタを使うやり方です。
Sub Sample1()
Dim lastRow As Long
Dim myary
myary = Array("赤", "青", "紫")
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1").AutoFilter field:=1, Criteria1:=myary, Operator:=xlFilterValues
If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(Cells(2, "A"), Cells(lastRow, "A")).SpecialCells(xlCellTypeVisible).EntireRow.Select '//★//
End If
ActiveSheet.AutoFilterMode = False
End Sub
次に、コツコツループさせる方法です。
Sub Sample2()
Dim i As Long, k As Long
Dim myRng As Range
Dim myary
myary = Array("赤", "青", "紫")
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 0 To UBound(myary)
If Cells(i, "A") = myary(k) Then
If myRng Is Nothing Then
Set myRng = Cells(i, "A")
Else
Set myRng = Union(myRng, Cells(i, "A"))
End If
Exit For
End If
Next k
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Select '//★//
End If
End Sub
※ どちらも行選択でやめています。
すぐに削除したい場合は「★」の行の
>Select
を
>Delete
に変更してみてください。m(_ _)m
tom04 様
書いていただいたコードで解決しました!
とても悩んでいたので、すっきりしました。
お知恵を貸していただきありがとうございます。
No.1
- 回答日時:
こんにちは
どのような条件でテストしているのかわかりませんが、ご提示のコードは複数行に存在する場合を想定したコードになっています。
もしかすると、あちこちの列に点在するようなケースでテストしていて、うまくいかないと言っていたりするのでは?
あるいは、完全一致ではなく部分一致も削除したいといったように、どこか前提条件が違っているのかもしれません。
全体の考え方はそのままで使えるはずなので、条件が異なるところを調整すれば良いのではないでしょうか。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
ご回答ありがとうございます。
特定の文字列は複数の列で点在はして居らず、
1列に入力してあります。
上記のコードは1つの特定の文字列(例えば”赤”)を探し、特定の文字列(”赤”)を見つけ出したときに、
”赤”の行自体を削除してくれました。
特定の文字列が複数あってその行を削除したい場合(例えば”赤”と”青”と”紫”)はどうしたらいいのかなと思っていました。
説明が悪く申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
エクセルで特定の文字が入ってる列を削除方法
Excel(エクセル)
-
-
4
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"11485794"
Excel(エクセル)
-
5
VBAで特定の文字を含まない列の削除方法について
Excel(エクセル)
-
6
エクセル 指定した文字列を含む列を削除するには
Excel(エクセル)
-
7
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
8
エクセルマクロで複数ある特定の文字列が含まれる行を削除したい
Excel(エクセル)
-
9
エクセルマクロ 特定の文字列を含む行のみを残す (マクロ修正)
Excel(エクセル)
-
10
【Excel VBA】複数の条件を満たすデータを行削除
Excel(エクセル)
-
11
エクセルで別シートにリスト化した文字列を含むセルを持つ行を削除する方法を教えてください。
Excel(エクセル)
-
12
【VBA】条件に一致しない行を削除したい
Visual Basic(VBA)
-
13
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
14
【VBA】条件に一致しない行を削除したい 複数条件
Visual Basic(VBA)
-
15
VBAで色の付いているセルの行削除
Excel(エクセル)
-
16
IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?
Excel(エクセル)
-
17
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
18
エクセルVBA C列に特定の文字列を含む行のみを抽出し、一つのExcelにまとめたい。
Excel(エクセル)
-
19
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
20
【Excel VBA】特定の列以外を削除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
【Excel VBA】複数ある特定の文...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Left関数とRight関数を合わせた...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
VBA2005 16進を2桁で表示したい。
-
アクセスで特定の数字以外(複...
-
エクセルで文字列をtxtファイル...
-
変数内に入った文字列の結合 UWSC
-
Excelで指数表現しないようにす...
-
16進数を10進数に簡単に変換す...
-
VBの「As String * 128」とは?
-
同一セル内に関数と文字列を同...
-
MS SQLServer のSQLで文字列の...
-
aaa.bbb.ccc という、「ドット...
-
■文字コード判定■
-
エクセルでセル内の文字列の最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
Excelで指数表現しないようにす...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
C#で年月を比較する
-
16進数を10進数に簡単に変換す...
-
“丸(〇/○/◯)”に似た文字…
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
おすすめ情報