- ベストアンサー
エクセルVBAで特定の文字を含まない行を削除する
エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。
- kirikiriya
- お礼率57% (22/38)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 例えば、こんなふうにしたらどうでしょう。 ただし、空白行はどうするとか、細かい仕様が決めていません。 '------------------------------------------- Sub MarcoTest1() Dim c As Range Dim ur As Range Const sF As String = "りんご" With ActiveSheet For Each c In .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp)) If Not (c.Value Like "*" & sF & "*" Or c.Offset(, 1).Value Like "*" & sF & "*") Then If ur Is Nothing Then Set ur = c Else Set ur = Union(c, ur) End If End If Next c If Not ur Is Nothing Then ur.EntireRow.Delete shift:=xlShiftUp End If End With End Sub '-------------------------------------------
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
多分 IF B列にりんごがない thenにしたと思いますのでそこで IF B列にりんごがない and C列にりんごがない then 削除するコード と言う風にすればいいと思われます。
お礼
ありがとうございました。 回答が早くてうれしかったです。
関連するQ&A
- エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法
エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法 表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。 特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。 それがたくさんあり大変困っております。 エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、 5回以上削除したい場合は操作が行われませんでした。 これをマクロで行うにはどういう式を作ればいいでしょうか? 宜しくお願いします。
- 締切済み
- オフィス系ソフト
- エクセル VBAにて行削除をしたい…
エクセル2003にて VBA初心者です。 A列1~100に101~200までに番号が振ってあります。 Z列に記入がない場合はその行を削除するVBAを教えてください。 例 A B C D E F …… Z 1 101 文字有り 2 102 ブランク 3 103 ブランク 4 104 文字有り 5 105 文字有り … 99 199 文字有り 100 200 ブランク この様な場合2,3,100の行ごと削除をするという形式のものです。 また、この場合A列の番号も自動で変われば(104が102になる等)最高です。 詳しい方教えてください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル VBA 特定の文字列
エクセル VBA 特定の文字列 A列に、様々な文字列があるとします。 そのうち、りんごと書かれている行のみを別シートに書き出すマクロを教えてください。 お願い致します。
- ベストアンサー
- その他MS Office製品
- エクセルマクロ 特定の文字列を含む行を削除
エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。
- ベストアンサー
- オフィス系ソフト
- エクセルで特定の行を削除したいのですが。
エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルで30万行から特定の行を削除したいのですが。
エクセルで30万行から特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロを使うのでしょうか? また、マクロを使う場合、どの位時間がかかりますでしょうか?行数が30万行ありますので。(PCのスペックは、Core2Duo 1.40GHz/メモリ3GBです) 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBA 特定の文字列を含む行を削除する方法
特定の文字列を含む行を削除する方法が知りたいです。 行を削除する方法は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の知識が乏しく、組み立て方について理解が無いため、どうすればよいかさっぱりわからず、、 こちらで質問させて頂きました。。。 何卒宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 特定の列に特定の文字があるとき
VBAについてです。 たとえば、エクセルのA列に「あいうえお」という文字があったとき その行を削除したいという場合 素人ながらVBAを真似てみたら、A列以外のところに「あいうえお」が 入っている行も削除されてしまいました。 あくまでA列にその文字があったときにだけ削除したいのですが どのようにしたらいいのでしょうか。 InputBoxを使っていたら、どの列に文字が入っていても 削除されてしまい困っています。
- 締切済み
- Excel(エクセル)
- 特定文字列を含まない行を削除
以前特定文字列を含む行を削除する方法の質問をし、正規表現を置換することでできることを知りました。^.*特定の文字列.*\n 今度は特定文字列を含まない行を削除を削除したいです。 この場合どう記述すればいいでしょうか? また、特定文字列1と特定文字列2のどちらかを含まない行を削除する方法もあわせて知りたいです。
- 締切済み
- その他(インターネット・Webサービス)
お礼
回答ありがとうございます。 参考通りに書き換えて使ってみたら上手くいきました!!