• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オートフィルターのような機能をフォーム上で VBA)

フォーム上でオートフィルターのような機能を作りたい

このQ&Aのポイント
  • Excel2003を使用して、フォーム上でオートフィルターのような機能を作りたいと思っています。具体的には、フィルターをかけたら可視セルを抽出し、コンボボックスに登録する処理をしたいです。現状では、コンボボックスの値が変更されるたびにフィルターがかかってしまい、うまく処理ができません。解決方法を教えてください。
  • Excel2003を使用しており、フォーム上でオートフィルターのような機能を作りたいです。具体的には、コンボボックスの値が変更された時にフィルターをかけ、可視セルを抽出してコンボボックスに登録する処理をしたいです。しかし、現状ではコンボボックスの値を更新するたびにフィルターが全開になってしまう問題があります。解決方法を教えてください。
  • Excel2003を使用しています。フォーム上でオートフィルターのような機能を作りたいと思っています。具体的には、コンボボックスの値が変更された時にフィルターをかけ、可視セルを抽出してコンボボックスに表示する処理を実装したいです。しかし、現状ではコンボボックスの値を更新するたびにフィルターがかかり、うまく処理できません。どうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

基本的にやることとしては ComboBoxN_Changeにおいて  if ComboBoxNが空白の場合,「該当列の」オートフィルタを全表示する  else 該当列をComboboxNで指定したアイテムで絞り込む  更にその状態で,「ComboBoxN以外の全てのコンボボックス」の選択肢をシートから拾い直す という動作になります。   「ある列」で例えば「AA」というアイテムでフィルタを掛けた場合,「他の列」の選択肢は「ある列がAAである行の選択肢」だけが抽出されていなければなりません。 同様に「ある列」のフィルタを解除した場合は,他の列は「ある列については全表示し,かつ別の列で絞られていた場合はその状態での行の選択肢」が抽出されていなければなりません。

satoron666
質問者

お礼

回答ありがとうございます。 分かりにくい説明でしたが、内容を理解して頂き ありがとうございます。 ComboBoxN_Changeを使うか、 ComboBoxN_AfterUpdateを使うか迷っています。 Changeを使うと、色々迷ったけど結局選択するのをやめた場合に空白になってしまい、シートのフィルターが解けてしまいます。 また、「ComboBoxN以外の全てのコンボボックス」の選択肢をシートから拾い直す…ということですが、 ComboboxNは他の選択肢も選べるような状態のままにしておく …そうですね、そのほうがいいかもしれません! あぁ…そういった考え方もあるのですね。 空白なら、その列のみ全表示とすれば良いのですね! 試しに作ってみて、わからなかった場合に再度補足に書かせていただきます。 ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A