
いつもお世話になっております。
添付したファイルのように
オプションポタンを押すと 男 女が
リストボックス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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
C言語では0は・・・
-
変数名の取得
-
ACCESS VBA 画像ファ...
-
値を返さないコード パス
-
【C++/CLI.NET】コンボボックス...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
テキストボックスで入力
-
[VB.net] DataGridViewのコンボ...
-
シーケンサで最小値を保持する
-
sin(π)が0にならないです
-
ListBoxでオートフィルター表示
-
ComboBoxとListBoxとの連動
-
2つのCSVを比較して一致してい...
-
RegisterClassExのエラー原因
-
Excel VBAのリストボックスの値...
-
Visual Studioのローカルウィン...
-
VB.netでRGB関数を使うには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
シーケンサで最小値を保持する
-
VBA ドロップダウンリストを残...
-
Excel VBAのリストボックスの値...
-
マクロで奇数と偶数の値を2か所...
-
値を返さないコード パス
-
C#の質問です
-
VB.NETでコンボボックスの1行目...
-
VB初心者。小数点以下の表示で...
-
変数に代入してある数値を表示...
-
変数名の取得
-
PL/SQLでのTO_DATEの時間取得に...
-
マクロ 特定のセル値のみクリ...
-
ユーザーフォームのテキストボ...
-
Excel VBA 複数選択したリスト...
-
VB.NETのスクロールバーコント...
-
コンボボックスに固定値をセッ...
-
vb6のVSFlexGridで選択行、列の...
-
windowsアプリケーションで小数...
-
textboxとLabelを動的に変更する
おすすめ情報
めぐみん様
いつもお世話になっております。
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 だと でませんです。
うまくできました。
添付したファイルのように
思い通りにできるようになりました。
有難うございます。