• ベストアンサー

フィルタを設定したExcelシートへのレコード追加

Excelの帳票にVBAでデータを追加する処理なんですが シートにフィルタが設定されている場合、データの追加後正しい表示がされません。 追加したデータの値がフィルタの設定値なら表示し、設定値でなければ表示しないようにできますか? なお、フィルタは複数の列に対し設定します。 よろしくお願いしま~す。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

補足要求をさせてください。 (フィルタオプションで抽出した後ならレコード(行)を付け加えられる)(1)例としてA1~E6に下記データを入れる 著者 分類クラス 定価 分類クラス 定価 三原 a 14 a >15 大川 b 15 山田 c 20 志茂田 a 12 沓抜 a 30 (2)データ-フィルタ-フィルタオプションの設定で リスト範囲$A$1:$E6$($A$1:$C$6でも同じ) 検索条件の範囲$D$1:$E$2でOKで 著者 分類クラス 定価 沓抜 a 30   となる。 (3)これに下記を追加する(7、8行) 大下 a 40          (A) 近藤 d 45          (B) を加えて入力できる。しかし2行とも表示される。 (4)もう一度データ-フィルタ-フィルタオプションの設定を すれば、 沓抜 a 30 大下 a 40となる。 (5)この(4)をせずに、入力と同時に(3)のAは表示し、(3)の Bは消すと言うことでしょうか。 (6)それとも(3)のデータの追加を全て終わった後、コマンド ボタン(新に追加するとして)を押せば、(4)の状態になれば 良いのでしょうか。 補足をしていただければ答えやすいのではと思います。 (6)なら今組んでおられるVBAの延長線上で可能と思います。(5)はイベントの捉え方が私には難しいのと、 条件に合わないものの非表示をどうするか、AdvancedFilterメソッドの力を借りるのでしょう。 あるいはAutoFilterを使っておられますか。

megxp
質問者

お礼

回答ありがとうございました。 でも、自分の考えていたのと少し違っていたようです。 もう少し自分で考えて見ます・・・。

megxp
質問者

補足

ご回答ありがとうございますっ。 検索条件はユーザーが手入力により直接指定します。上の例ですとユーザーがaとかbを設定して、そのシートにVBAで入力フォームからデータを挿入するんですが入力データがフィルタに設定されてたら表示してされてなかったら非表示にしたいんです。できますでしょうか?

その他の回答 (1)

  • Fat01ton
  • ベストアンサー率46% (122/264)
回答No.1

私も余りVBEに詳しくありませんがこんな方法ではどうでしょうか? 一度、フィルタを解除してデータを追加後 VBA上でもう再度、追加前の条件でオートフィルタを設定してみてはいかがでしょうか?

関連するQ&A