フィルタオプションの設定の検索条件範囲で指定した条件が半角・全角や大文字・小文字にかかわらず抽出するということはできますか?
商品情報というブックがあり、抽出シート(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ランキング
-
サブフォルダに格納されている...
-
IF文、条件分岐の整理方法
-
VBAコードのインデント表示
-
【ExcelVBA】値を変更しながら...
-
VBA 別ブックからコピペしたい...
-
[VB.net] ボタン(Flat)のEnable...
-
【ExcelVBA】インデックスが有...
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
時間短縮のために、テキストフ...
-
vbaにてseleniumを使用したedge...
-
現在のブックを閉じないで、マ...
-
Outlookにて既にウィドウ単体で...
-
excelのVBAについて、以下のコ...
-
Excel VBA 選択範囲の罫線色の...
-
Excel関数またはVBAでの質問に...
-
Outlookの「受信日時」「件名」...
-
VBA実行後に元のセルに戻りたい
-
VBA ユーザーフォーム ボタンク...
-
VB.net(VB)で、フォームにExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAなくなるの?
-
VBAでCOPYを繰り返すと、処理が...
-
vba 削除
-
プログラミング
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
エクセルのVBAコードについて教...
-
久しぶりのプログラミング
-
ユーザーフォームに別シートか...
-
エクセルVBAコードで教えて下さ...
-
VBA 別ブックからコピペしたい...
-
ExcelのVBAコードについて教え...
-
VBAコードについて教えてくださ...
-
vba アクティブシートの名前変...
-
Excelのマクロについて教えてく...
-
エクセルVBA
-
Geogebraの操作方法について
-
マクロの記録を使用したマクロ...
-
Excel(M365) Vlookup/セル反転(...
-
Excel 範囲指定スクショについ...
おすすめ情報