Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


75975 / 76738 ←次へ | 前へ→

【5193】Re:コンボボックスを用いてのオートフィルタ。
回答  こうちゃん E-MAIL  - 03/4/24(木) 17:59 -

引用なし
パスワード
   みなさん、こんにちは

私は、こんなケースではデータベース使うことが多いのですが、あえてベタにシートのデータ検索する方法でモジュール作ってみました。
(簡単のため3段階の例です。)
フォームのコンボボックスとしますね。

Sheet2の各列に元データを作っておきます。

A    B    C     D      E
肉   肉   牛     牛     松坂
果物  肉   豚     牛     近江
野菜  果物  りんご   豚     薩摩
    果物  みかん   豚     ヨークシャー
    野菜  ピーマン  りんご   国光
    野菜  ジャガイモ りんご   ふじ
              みかん   温州
              みかん   和歌山
              ピーマン  緑
              ピーマン  赤
              ジャガイモ メークイン
              ジャガイモ 男爵

ComboBox1のRowSourceに"Sheet2!A1:A3"を設定しておきます。

以下はフォームモジュールです。

Private Sub ComboBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
'ComboBox1の変更時、B・C列のデータから該当するデータをF列にコピーして、F列をComboBox2のRowSourceに設定します。

  Dim i As Integer
  Dim j As Integer

  j = 1
  With Sheet2
    For i = 1 To .Range("B65536").End(xlUp).Row
      If .Cells(i, 2).Value = Me.ComboBox1.Value Then
        .Cells(j, 6).Value = .Cells(i, 3).Value
        j = j + 1
      End If
    Next
    Me.ComboBox2.RowSource = "Sheet2!F1:F" & j - 1
  End With

End Sub

Private Sub ComboBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

  Dim i As Integer
  Dim j As Integer

  j = 1
  With Sheet2
    For i = 1 To .Range("D65536").End(xlUp).Row
      If .Cells(i, 4).Value = Me.ComboBox2.Value Then
        .Cells(j, 7).Value = .Cells(i, 5).Value
        j = j + 1
      End If
    Next
    Me.ComboBox3.RowSource = "Sheet2!G1:G" & j - 1
  End With

End Sub

かなりベタですが、こんな感じでどうでしょ?
あとはフィルター使ったり、データベースと組み合わせたりで応用できると思いますが、いかがでしょ?
6 hits

【5180】コンボボックスを用いてのオートフィルタ。 たまころ 03/4/24(木) 14:50 質問
【5181】Re:コンボボックスを用いてのオートフィルタ... ぴかる 03/4/24(木) 15:19 回答
【5182】Re:コンボボックスを用いてのオートフィルタ... たまころ 03/4/24(木) 15:21 質問
【5186】Re:コンボボックスを用いてのオートフィルタ... ぴかる 03/4/24(木) 15:58 回答
【5188】Re:コンボボックスを用いてのオートフィルタ... たまころ 03/4/24(木) 16:14 質問
【5191】Re:コンボボックスを用いてのオートフィルタ... ぴかる 03/4/24(木) 16:29 発言
【5193】Re:コンボボックスを用いてのオートフィルタ... こうちゃん 03/4/24(木) 17:59 回答
【5194】Re:コンボボックスを用いてのオートフィル... ポンタ 03/4/24(木) 18:15 回答
【5206】Re:コンボボックスを用いてのオートフィル... たまころ 03/4/25(金) 14:31 お礼

75975 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free