• ベストアンサー

エクセルで特定の行をマクロで削除したい。

marbinの回答

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

Or検索ですね。 私は、こういう場合はLike演算子を使います。 If A Like "*AA*" Then で、変数Aに"AA"が含まれていたら、という意味になります。 これを検索キーワードの分だけ繰り返します。 最初はFalseにしておき全て含まれていたら、Trueとすればいいです。 もちろんもっと簡潔な方法もあるとおもいます。

関連するQ&A

  • 特定文字列を含む行を削除するマクロ

    すみませんどなたか教えてください。 エクセルで商品の在庫管理をしておりまして、AP列に製品メーカー名が入っているのですが、 いくつかの(数十個)メーカーを省き削除したく思い、以下のようなマクロをググって作ってみましたが、 上手く動きませんでした。 1つのメーカーだけ記載した場合はうまく動きました。 やりたいことは1つのマクロの中に、数十個のメーカー名を記入しておき、そのメーカーを全件 検索して、AP列に文字列が含まれる場合は、その行を削除したいです。 宜しくお願い致します。 ~~~~~~ Sub DelLines1() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="softbank", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop Sub DelLines2() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="docomo", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop Sub DelLines3() Dim R As Range Do Set R = ActiveSheet.Range("AP:AP").Find(What:="au", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub

  • エクセルで特定の行を削除(特定文字が複数)

    http://okwave.jp/qa/q2692757.html に後述のマクロが紹介されていますが、 特定の文字が、"XXX"以外に、複数ある場合はどのようにすればよいか教えてください。 "XXX" and/or "YYY" and/or "ZZZ" の例で教えていただけませんか。 Sub DelLines()   Dim R As Range   Do     Set R = ActiveSheet.Range("B:B").Find(What:="XXX", LookAt:=xlPart)     If R Is Nothing Then Exit Sub     R.EntireRow.Delete   Loop End Sub

  • 特定文がある行を削除

    特定分がある行を削除しようと思い、以下のように設定いたしました。 Sub DelLines() Dim R As Range Do Set R = ActiveSheet.Range("A:A").Find(What:="指定文", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub これを、全てのシートに適用するにはどのように書けばよろしいのでしょうか?

  • 行の削除

    列Kに、削除という文字が入っている場合は、その行を削除するということで、3000行くらいあるなかで3分の2程度は削除する行に該当します。 下のマクロで試してみましたが、このマクロではとっても時間がかかってしまうんですが、どうしたら早く処理できるのか教えて下さい。 Dim R As Range Do Set R = ActiveSheet.Range("K:K").Find(What:="削除", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop

  • エクセルについて

    ある表より特定の文字が入力されている行を削除したいと考えております。過去を参照し下記のようなマクロを取り入れたいと思いました。 Sub macro1() Dim R As Range Do Set R = ActiveSheet.Range("F:F").Find(What:="削除したい文字列", LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub ここで質問です。F列に削除したい文字列がいくつかある場合上記をどのように改良すればよいでしょうか。ご教示の程よろしくお願い致します。

  • EXCEL 2つの特定の文字列がある行を残して削除

    EXCELにて2つの特定の文字列が含まれる行を残して削除したいと思っております。 A列50行にそれぞれ"年賀状""喪中""名刺"がランダムに羅列されていて、その中から"年賀状"と"喪中"の行だけを残して"名刺"の行は削除したいと思ってます。(B列以降は注文番号、枚数、氏名等が入力されています) 以下のコードで1つだけは可能でしたが、色々試しても2つはできませんでした。(コードは拾い物を少しアレンジ) Sub MacroTest1()   Dim keyWord As Variant   Dim FirstAdd As String   Dim UR As Range   Dim c As Range   Const col As Long = 1 '列数   keyWord = "年賀状"   If VarType(keyWord) = vbBoolean Or Len(keyWord) = 0 Then Exit Sub      With ActiveSheet     With .UsedRange       Set c = .Find( _       What:="*" & keyWord & "*", _       LookIn:=xlValues, _       LookAt:=xlPart, _       SearchOrder:=xlByRows)              If Not c Is Nothing Then         FirstAdd = c.Address         Set UR = c         Do           Set c = .FindNext(c)           Set UR = Union(UR, c)           If c.Address = FirstAdd Then Exit Do         Loop Until c Is Nothing       End If     End With     If Not UR Is Nothing Then       UR.EntireRow.Hidden = True       .UsedRange.SpecialCells(xlCellTypeVisible).Delete       .UsedRange.EntireRow.Hidden = False     End If   End With End Sub どうか宜しくお願いします。

  • マクロでキーワードを抽出して別のシートに貼り付けする

    セルA列にキーワードCCCが含まれていた場合に その行を削除してSheet2に貼り付けをしたく、下記のソースを 書いてみましたがエラーがでてしまいます。 どこが間違っているか添削していただけないでしょうか? Sub キーワード切取貼付() Dim r As Range For Each r In Range("A1", Range("A65536").End(xlUp)) Do Set r = Range("A:A").Find(What:=CCC, LookAt:=xlPart) If r Is Nothing Then Exit Do r.Worksheets("Sheet1").Range("A:A").Cut r.Worksheets("Sheet2").Range("A1").PasteSpecial Loop Next End Sub

  • タイトル名で複数列を取得し、その列を削除するマクロ

    1行目にタイトル名があり、タイトル名で複数列を取得し、その列を削除するマクロを作成したいです。 いろいろ調べ、下記のコードを試し、1つの列は削除可能でしたが、 複数となるとどのようになるのか分からず・・どなたかお教えいただければ助かります。 以下は「たんぽぽ」のみですが、1行目に花の名前が多数並んでおり、「たんぽぽ」「バラ」「百合」…を一緒に削除したいです。 Dim R As Range Do Set R = ActiveSheet.Range("A:ZZ").Find(What:="たんぽぽ", LookAt:=xlWhole) If R Is Nothing Then Exit Sub R.EntireColumn.Delete Shift:=xlToLeft Loop

  • VB 特定の文字列が入っている行を削除したい

    職場で、データの照合をしているのですが、毎回かわるキーワードが入っている 文字列が含まれる行を削除したいと考えています。 下のものは、ネットサーフィンで拾ってきたものです。 こちらでは、「文字列が含まれている行以外のものを残す」もので、 私が目的としているものと逆になっています。 アプリケーションボックスを利用して、「特定の文字列が含まれている行を削除」 できるのが理想です。 下のものを利用して(作成された方、ごめんなさい)、なんとかできるようにしたいと考えています。 どなたか助けてただけないでしょうか? 当方は、まったくの素人です。 Sub MacroTest1()   Dim keyWord As Variant   Dim FirstAdd As String   Dim UR As Range   Dim c As Range   Const col As Long = 1 '列数   keyWord = Application.InputBox("除外対象の文字列は?", Type:=2)   If VarType(keyWord) = vbBoolean Or Len(keyWord) = 0 Then Exit Sub      With ActiveSheet     With .UsedRange       Set c = .Find( _       What:="*" & keyWord & "*", _       LookIn:=xlValues, _       LookAt:=xlPart, _       SearchOrder:=xlByRows)              If Not c Is Nothing Then         FirstAdd = c.Address         Set UR = c         Do           Set c = .FindNext(c)           Set UR = Union(UR, c)           If c.Address = FirstAdd Then Exit Do         Loop Until c Is Nothing       End If     End With     If Not UR Is Nothing Then       UR.EntireRow.Hidden = True       .UsedRange.SpecialCells(xlCellTypeVisible).Delete       .UsedRange.EntireRow.Hidden = False     End If   End With End Sub

  • エクセルについて教えて下さい。

    エクセルについて教えて下さい。 列のいずれかに、特定の文字列が含まれる行を削除したいと考えています。 1つの文字列であれば、過去のQAからその解決策を見つけることができました↓ Sub test01() Dim x As String, c As Range x = InputBox("削除する文字を入力") With ActiveSheet.UsedRange Do While (1) Set c = .Find(What:=x, LookIn:=xlValues, LookAt:=xlPart) If c Is Nothing Then Exit Do c.EntireRow.Delete Loop End With End Sub 上記の場合だと、例えば削除対象の文字列は1種類しか記入できません。できたら、半角スペースや半角カンマなどで区切って、複数の文字列を対象に行いたいです。 どなたかご教授下さい。