フィルタオプションの設定の検索条件範囲で指定した条件が半角・全角や大文字・小文字にかかわらず抽出するということはできますか?
商品情報というブックがあり、抽出シート(1枚目)と2枚目のシートにデータが入っています。
2枚目のシートのフィールド名を抽出シートのA1を基準に貼り付けています。
条件をA1:I3あたりに入力し、2枚目のシートの条件に合うものを抽出シートのA5以降に取り出すマクロを書いています。次回マクロを起動させたときにA5以降にデータがあれば削除させます。
いろいろな方に教えていただいて下記のようにできあがったのですが、ちょっと問題があって
質問しています。
Dim myRow1 As Long, myRow2 As Long
myRow1 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
myRow2 = Sheets("抽出").Range("A" & Rows.Count).End(xlUp).Row
If myRow2 >= 5 Then
Sheets("抽出").Range("A5:I" & myRow2).ClearContents
Sheets("抽出").Range("A5:I" & myRow2).ClearFormats
Sheets(2).Range("A1:I" & myRow1).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("抽出").Range("A1").CurrentRegion, _
CopyToRange:=Sheets("抽出").Range("A5"), Unique:=False
End Sub
現状では元データが全角だと半角で入力すると抽出されず、元データが小文字だと大文字は抽出されません。
いちいち元データの状態を把握しての検索になってしまいます。
このマクロを修正して全角・半角もしくは小文字・大文字にかかわらず抽出できるようにすることは可能でしょうか?
どなたかご存知の方がいらっしゃれば教えていただけないでしょうか?
No.1ベストアンサー
- 回答日時:
フィルタオプションで数式を条件にします。
全角、半角混じり、大文字、小文字混じりでもいけると思います。適当なワークシート関数がなさそうなので、ユーザー定義関数を作成してみました。
Function findString(targetString As String, pattern As String) As Boolean
If Len(targetString) <> Len(pattern) Then
findString = False
Exit Function
End If
If InStr(1, targetString, pattern, vbTextCompare) > 0 Then
findString = True
Else
findString = False
End If
End Function
フィルタオプションで数式を条件にするのは、下記などをご覧下さい。
http://www.excel-jiten.net/database/extract_filt …
<使用例>
下記式を入れたセルをフィルタオプションの条件に設定します。このセルの上は空白にしておく必要があります。
=findString(A6,$D$2)
A6はフィルターを掛けたい範囲の、フィールド名の下のセルのアドレス
$D$2は、検索したい文字列が入ったセルのアドレス
なお、xl2000で試しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Visual Basic(VBA) 抽出結果を別シートに貼り付ける 2 2022/07/09 22:59
- Visual Basic(VBA) excelVBAについて。 4 2022/11/21 16:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 範囲指定スクショについ...
-
Excelのマクロについて教えてく...
-
プログラミング
-
ユーザーフォームに別シートか...
-
vba アクティブシートの名前変...
-
Excelのマクロについて教えてく...
-
2つのマクロでチェックボックス...
-
VBAに詳しい方教えてください。
-
Excel VBA 定義されたプロージ...
-
エクセルVBAコードで教えて下さ...
-
VBAコードについて教えてくださ...
-
ExcelのVBAコードについて教え...
-
Excel VBA マクロ あるフォルダ...
-
VBAで特定のシート以外のシート...
-
Excelの別ブックの表を1つにま...
-
お世話になります。 Excel VBA...
-
Excelのマクロについて教えてく...
-
VBA一覧取得 再投稿
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】インデックスが有...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
VBA レジストリの値の読み方に...
-
Excelのマクロについて教えてく...
-
ユーザーフォームに別シートか...
-
VBAの計算で@が出てしまう件
-
エクセルVBAについて
-
Vba 実数および実数タイプの変...
-
【ExcelVBA】値を変更しながら...
-
VBA一覧取得 再投稿
-
VBA指定行削除
-
エクセルVBAについて
-
VBA ユーザーフォーム ボタンク...
-
VBA 何かしら文字が入っていたら
-
エクセルについて
-
2つのマクロでチェックボックス...
-
【マクロ】1つのマクロの中に...
-
ExcelのVBAコードについて教え...
-
VB.net(VB)で、フォームにExcel...
-
Vba SelStart、SelLen教えてく...
-
Excel-VBAのmsgBox()の不思議
おすすめ情報