【VB.NET】ClosedXML:オートフィルター

MEMO
  • この記事は GitHub - ClosedXML - Wiki を参考に書かせていただいたものですが、C# から VB.NET への書き換えをし、英語から日本語へ翻訳しただけでなく、元記事の構成・コード・コメント等を変更している場合もありますのでご了承ください。
  • 現在 ClosedXML のメンテナンスをご担当されている Francois Botha 様からの掲載許可もいただいてます。
  • この記事のコードサンプルについては、Imports ClosedXML.Excel が宣言されていることを前提としています。
  • ClosedXML の作成者について:Francois Botha, Aleksei Pankratev, Manuel de Leon, Amir Ghezelbash
  • ClosedXML のライセンスについて:GitHub - ClosedXML - MIT License

範囲にオートフィルターを設定する

値を抽出する

カスタムフィルタ

上記コードの実行結果は下図のようになるはずでした。

しかし、実際には下図のようになりました。(A 列に "E" があってはいけないはずです)

いろいろ試してみたところ、Excel 上でフィルタの[再適用]ボタンをクリックすると "E" が消えて想定通りの結果になりました。

ちなみに、コードの中に ws.AutoFilter.Reapply を入れてもダメでした。

それから、今回は2列のデータでオートフィルタを試したら上記のようにちょっと変な結果になったわけですが、1列のデータの場合は最初から正しい結果でした。

 

カスタムフィルタの設定状態を確認するには、フィルタをクリック>[テキストフィルター]>[ユーザー設定フィルター]をクリックします。

 

「【VB.NET】ClosedXML の使い方」の一覧を表示

コメントの投稿

avatar
  購読する  
通知を受け取る対象