• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ 文字列の検索と抽出)

エクセルマクロで文字列の検索と抽出

このQ&Aのポイント
  • エクセル2010を使用しています。【Sheet3】のA列~CQ列には、空白・エラー・数値・文字が含まれています。L列には各地域の名前が入っており、L列に特定の検索対象文字列が含まれていた場合に、その行を【Sheet1】に抽出して行きたいです。また、検索対象文字列が増えた場合にも対応できるようにしたいです。
  • エクセル2010を使用しています。【Sheet3】のA列~CQ列には、空白・エラー・数値・文字が含まれています。L列には各地域の名前が入っていますが、L列に特定の検索対象文字列が含まれていた場合に、その行を【Sheet1】に抽出して行きたいです。また、検索対象文字列が増えた場合にも対応できるようにしたいです。
  • エクセル2010を使用しています。【Sheet3】のA~CQ列には、空白・エラー・数値・文字が含まれています。L列には各地域の名前が入っており、L列に特定の検索対象文字列が含まれていた場合に、その行を【Sheet1】に抽出して行きたいです。検索対象文字列は複数ある場合もあります。また、検索対象文字列が増えた場合にも対応できるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! >検索対象文字が複数、例えば 福岡 か 大阪 が入っていたら・・・ とは必ず8行の中すべてに「福岡」か「大阪」が入っていたら!というコトでしょうか? すなわち1行でも参照文字がない場合、その8行の範囲は無視する!という解釈での一例です。 標準モジュールです。 Sub Sample1() Dim i As Long, k As Long, myCnt As Long, myMax As Long, wS As Worksheet, myAry Set wS = Worksheets("Sheet1") myAry = Array("福岡", "大阪") '←ココに増えたデータを追加する★ With Worksheets("Sheet3") For i = 1 To .Cells(Rows.Count, "L").End(xlUp).Row Step 8 myMax = 0 For k = 0 To UBound(myAry) myMax = WorksheetFunction.Max(myMax, WorksheetFunction.CountIf(.Cells(i, "L").Resize(8), "*" & myAry(k) & "*")) Next k If myMax = 8 Then Range(.Cells(i, "A"), .Cells(i, "CQ")).Resize(8).Copy wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) End If Next i If WorksheetFunction.CountA(wS.Rows(1)) = 0 Then wS.Rows(1).Delete End If End With End Sub こんなんではどうでしょうか?m(_ _)m

gekikaraou
質問者

お礼

回答ありがとうございます!! 滅茶苦茶良いです。 助かりました、ありがとうございます。

関連するQ&A

専門家に質問してみよう