
VBA初心者です。そしてユーザーフォームというのを初めて使ってみています。
以下、見様見真似で検索フォームを作成しました。
20列目で文字検索をして該当する行をリスト表示するようにしました。
ここまではなんとかできたのですが・・・・(ほぼコピーですが・・・・)
つかして、血液型による絞り込み機能を入れたいと考えています。
顧客データ一覧の18列目に血液型があり、文字検索&血液型 の条件で検索をかけたいです。
A型・O型・B型・AB型・不明 のリストボックスは用意したのですが
この先の検索条件の付け加え方がネットを探してもいい感じのものが見つけられず・・・
ご教示いただけますと幸いです。どうぞよろしくお願い致します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub CommandButton1_Click()
Dim lastRow As Long
Dim myData, myData2(), myno
Dim i As Long, j As Long, cn As Long
Dim myBook As Workbook
Set myBook = Workbooks("顧客検索.xlsm")
'検索するデータを配列 myData に格納しています。
With myBook.Worksheets("顧客データ一覧")
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(3, 1), .Cells(lastRow, 25)).Value
End With
'配列 myData の中で検索で一致したデータを配列 myData2 に格納しています。
ReDim myData2(1 To lastRow, 1 To 7)
For i = LBound(myData) To UBound(myData)
If myData(i, 20) Like "*" & TextBox1.Value & "*" And myData(i, 20) Like "*" & TextBox2.Value & "*" And myData(i, 20) Like "*" & TextBox3.Value & "*" Then
cn = cn + 1
myData2(cn, 1) = myData(i, 2)
myData2(cn, 2) = myData(i, 24)
myData2(cn, 3) = myData(i, 25)
myData2(cn, 4) = myData(i, 20)
myData2(cn, 5) = myData(i, 19)
myData2(cn, 6) = myData(i, 21)
myData2(cn, 7) = myData(i, 8)
End If
Next i
'検索で一致したデータをリストボックスに表示します。
With ListBox1
.ColumnCount = 7
.ColumnWidths = "20;80;70;70;80;80;80"
.List = myData2
End With
End Sub

No.1ベストアンサー
- 回答日時:
こんばんは
>この先の検索条件の付け加え方がネットを探してもいい感じのものが見つけられず~
ご提示のコードで、条件に合っているかで抽出しているのは、
>If myData(i, 20) Like "*" ~~~
の部分ですから、ここに加えたい条件を付け加えれば良いのではないでしょうか?
And条件なのかOrなのかわかりませんけれど、
Cells(i, 18) = 血液型の種類
みたいな感じ。
「不明」となっているのをどのように扱いたいかによって、単純な「=」の比較だけで良いのかどうかわかりませんけれど・・・
(「不明」の場合は、全部の血液型を条件に合っているとみなすとか…)
えーーーって思うくらいかんたんな事だったんですね!!!
びっくりです。
できました!!!
何ということでしょう!!!!
相談して本当に良かったで♪ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
いつもお世話になっています 教えていただきたいです このコードをユーザーフォームにある コマンドボタ
Visual Basic(VBA)
-
VBAでtxtファイルを読み込む際にtabを認識したい
Visual Basic(VBA)
-
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
4
【Excel VBA】マクロボタンを表のスクロールやフィルタに左右されず固定できないですか?
Excel(エクセル)
-
5
サブフォルダ含むすべてのフォルダの Excel 検索
Visual Basic(VBA)
-
6
Excel VBAでフォルダ内の全テキストファイルの任意データを取得について
Visual Basic(VBA)
-
7
揮発性関数の語源・由来は何ですか?
Excel(エクセル)
-
8
VBAで、オートフィルタで非表示になっている行の高さを取得したい
Visual Basic(VBA)
-
9
実行時エラー1004「Select メソッドが失敗しました。」エラーの回避方法
Visual Basic(VBA)
-
10
【関数orVBA】カーソルのある行を黄色にし、A列の値を別シートに表示できますか?
Visual Basic(VBA)
-
11
クリックしたセルに色を付けるVBAマクロ
Visual Basic(VBA)
-
12
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
-
13
【VBA】特定のセルを取得し、DBからデータを取得してリスト形式にしたい
Visual Basic(VBA)
-
14
ハイパーリンクを値貼り付け
Excel(エクセル)
-
15
シート名をセルの値にするマクロについての質問
Visual Basic(VBA)
-
16
VBAのコードについて
Visual Basic(VBA)
-
17
エクセルで検索結果をユーザーフォームに表示したいのですが
Excel(エクセル)
-
18
フォルダに一括でファイル振り分けるマクロについて
Visual Basic(VBA)
-
19
エクセルvbaで重複データを加算したい
Excel(エクセル)
-
20
【Excel VBA】表の列の値毎に分割するには?(値がブックのファイル名)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Dictionaryを使い4つの条件の一...
-
5
リストボックスの列見出し(Exc...
-
6
【VBA】 動的な変数(定数)の指定
-
7
VBA-読み込んだテキストフ...
-
8
空白への0入力 二次元配列(VBA)
-
9
ExcelのINDEXとMATCH関数でスピ...
-
10
配列がとびとびである場合の書き方
-
11
Excel オートフィルタのリスト...
-
12
エクセル 条件を指定した標準...
-
13
エクセルで、絶対値の平均を算...
-
14
VB6・Split関数・連続した空白...
-
15
VBAでの100万行以上のデータの...
-
16
配列のSession格納、及び取得方...
-
17
SUMPRODUCT関数を用いた最小値
-
18
Excelのセルの色指定をVBAから...
-
19
16進数から2進数へ
-
20
Excelのオートフィルタで抽出し...
おすすめ情報
公式facebook
公式twitter