
いつもお世話になっております。
添付したファイルのように
オプションポタンを押すと 男 女が
リストボックス1に表示されます。
どちらかが選択されたら
リストボックス2に血液型が表示されます。
ここまではできましたが、
コマンドボタンを押して、抽出する方法
わかれば、おしえてくれませんでしょうか
以前、頂戴してコードのところわかりません。
Private Sub OptionButton1_Click()
With ListBox1
.Clear
.AddItem "男"
.AddItem "女"
End With
End Sub
------------------------------------------------
Private Sub ListBox1_Click()
With ListBox2
.Clear
.AddItem "A"
.AddItem "B"
.AddItem "O"
.AddItem "AB"
End With
End Sub
------------------------------------------------------
下記ののコードなんですが
どうしたらよいのか
おしえてくれませんでしょうか
Dim a() As String
Dim d As Long
Dim cnt As Long
With Me.ListBox2
For d = 0 To .ListCount - 1
If .Selected(d) Then
cnt = cnt + 1
ReDim Preserve a(1 To cnt)
a(cnt) = .List(d)
End If
Next
If cnt = 0 Then Exit Sub
Range("B3").AutoFilter Field:=3, Criteria1:=a(), Operator:=xlFilterValues
End With

No.4ベストアンサー
- 回答日時:
No.2です。
検証できる状態ではないのでググってみました。
https://www.239-programing.com/excel-vba/basic/b …
こちらのサイトの中央辺りにある、
・AutoFilter メソッドの使用例3
2つの項目(列)に対してそれぞれ1つの条件でフィルタをかける例です。
で見てみるとAutofilterのそれぞれのフィールドに検索したい値を別々に記載するようですね。
すなわち『且つ』は1つのフィールドでの複数条件なのかな???と。
No.2
- 回答日時:
まず『男・女』をオプションボタンでってのが不明ですね。
相対する物がないですから選択が『Yes or No』ならチェックボックスが良いと思います。
けど、ListBox1で男女を分けたとしてもListBox2での血液型の値は変わるものではないので(多分)、チェックボックスも不要な気もします。
既出ではありますが『何故このような仕様にされているのか?』が不明です。
それと各ListBoxでの選択値は1つのはずですから、複数選択の手段を取る必要はないと思われますけど?
極端に書けば
Private Sub CommandButton1_Click()
Debug.Print ListBox1.Value, ListBox2.Value
End Sub
これでそれぞれのListBoxの選択されてる値は取得可能なはずです。
⇒選択していない場合のチェックが必要かもですが。
あとはそれぞれを検索値として与えれば宜しいのでは?
2つの条件による場合はマクロの自動記録でも取れるかもですし。
と身体に穴を開けてる初級レベルは思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Dateserialで データ抽出 2 2022/06/26 21:07
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) リストボックス セルの値を取得する 1 2022/05/21 20:47
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でのレジストリ書き換え
-
VC++.netでaviを制御するには・・
-
RGB値をL*a*b*に変換したい
-
オペランド
-
midiのデルタタイムについて
-
ListBoxでオートフィルター表示
-
vbscriptを使いexcelを参照して...
-
Excel VBAのリストボックスの値...
-
VB.netでRGB関数を使うには
-
DataGridViewのコンボボックス...
-
ACCESS VBA 画像ファ...
-
FORECAST関数について教えてく...
-
VB 2005においての0から12ま...
-
VBAでWEB上の入力項目に値をい...
-
VB 値を拾い一回だけ処理を行う
-
VBA 違うシートにコピペしてソ...
-
変数名の取得
-
チェックした値を取得したい(C...
-
RegisterClassExのエラー原因
-
テキストボックスのvalueとtext...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
Excel VBAのリストボックスの値...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
VB初心者。小数点以下の表示で...
-
Excel VBA 複数選択したリスト...
-
C#の質問です
-
マクロで奇数と偶数の値を2か所...
-
変数名の取得
-
マクロ 特定のセル値のみクリ...
-
シーケンサで最小値を保持する
-
[VB.net] DataGridViewのコンボ...
-
Powershellのparamについて
-
PL/SQLでのTO_DATEの時間取得に...
-
【C++/CLI.NET】コンボボックス...
-
ユーザーフォームのテキストボ...
-
VB.NETのスクロールバーコント...
-
VB.NETでアクティブなformを知...
-
vb6のVSFlexGridで選択行、列の...
おすすめ情報
めぐみん様
いつもお世話になっております。
Range("B3").CurrentRegion.AutoFilter field:=3, Criteria1:=ListBox1.Value, Operator:=xlAnd, field:=4, Criteria2:=ListBox2.Value
で試しましたがうまくいきません。
Range("B3").CurrentRegion.AutoFilter field:=3, Criteria1:=ListBox1.Value, Operator:=xlAnd, field:=4, Criteria2:=ListBox2.Value
Operator:=xlAnd
Operator:=xlOrだとでますが、
男で かつ A だと でませんです。
うまくできました。
添付したファイルのように
思い通りにできるようになりました。
有難うございます。