top of page

指定セル範囲をフィルター処理する

更新日:2024年12月29日

<概要>

 今回は指定セル範囲をフィルター処理する汎用プロシージャの紹介です。


 セル範囲のフィルター処理はRangeオブジェクトのAutoFilterメソッドをして利用すれば可能ですが、これにこれを利用する場合の記述のルールを毎回思い出すのが面倒くさいっていうのが今回紹介する汎用プロシージャを作った背景です。

 具体的なルールとしてフィルターの条件を指定するCriteria1、Criteria2の引数において数値の場合は、

・○より大きい → ">[値]"

・○より小さい → "<[値]"

・○以上 → ">=[値]"

・○以下 → "<=[値]"

・○と等しい → "=[値]" , "=[文字列]"

・○と等しくない → "<>[値]" , "<>[文字列]"


文字列の場合は

・○を含む → "=*[文字列]*"

・○を含まない → "<>*[文字列]*"

となります。


 これらの記述が不要になるように紹介する汎用プロシージャでは次のような記述ができるようにしております。

 まず条件の設定は、第3引数「Condition1」で、下の画像のように指定の文字列から選択できるようにしています。また、2つ目の条件を入れる場合は、第6引数「Condition2」で同じように条件を選ぶことができます。

 また条件で与える文字列や数値は第2引数「Filter1」で直接入力ができます。同様に、2つ目の条件においては第5引数「Filter2」にで直接入力ができるようになってます。

ree

<実行例>

 実際の実行例を紹介します。

 まず次のような表が用意されているとします。データは個人情報テストデータジェネレーターを利用しています。https://testdata.userlocal.jp/

ree

 既にボタンなどを設置してありますが、こちらはサンプルファイルとして用意しておりますので、そちらもダウンロードしてください。


 実行としては下記の3つを用意しています。

・男でフィルター

・30代でフィルター

・○○子でフィルター


 まず「男でフィルター」のコードは次のようになっています。

 

 まず可読性と保守性を高めるために。表におけるヘッダーはEnumを定義しております。

 まだ記述の簡素化を目的にセル範囲はCurrentRegionを使用していますが。 CurrentRegionは表以外の範囲に少しでも関係ない入力セルがある場合に範囲がずれてしまうので、極力使わないようにしましょう。

 またフィルターを設置するまえにすでに設定してあるフィルターを解除するための処理を追加しております。こんな感じでこの処理をResetFilterという名前の汎用プロシージャを使っていますがこちらも、コードを紹介しておきます。


 実行結果は次のようになります。

ree

 「30代でフィルター」のコードは次のようになります。

 

 実行結果は次のようになります。

ree

 「○○子でフィルター」のコードは次のようになります。


実行結果は次のようになります。

ree

<関連記事>

今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>



コメント

5つ星のうち0と評価されています。
まだ評価がありません

評価を追加

​タグ一覧

配列処理(44)

階層化フォーム(33)

ファイル操作(22)

シート・セル操作(11)

コード自動生成(10)

ユーザーフォーム(8)

図形操作(7)

GAS(5)

アニメーション(5)

技術解説(4)

副業(4)

考え方(4)

条件付き書式(4)

イミディエイトウィンドウ(3)

Enum(3)

Googleスプレッドシート(3)

ココナラ(3)

クリップボード(3)

介護(3)

イベントプロシージャ(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Excel(2)

Excel小ネタ(2)

数学(2)

Outlook(2)

文字列操作(2)

小説(2)

HTML(2)

JavaScript(2)

日報(2)

カレンダー(2)

パズル(2)

ステータスバー(1)

開発効率化(1)

コード解析(1)

静的変数(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

六角形(1)

Excel遊び(1)

ボウリング(1)

時計(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

イベント(1)

溶接ロボット(1)

VBA(1)

脱Excel(1)

Discord(1)

ECサイト(1)

CSV(1)

楽天(1)

保育士(1)

シフト表(1)

CDP(1)

楽天市場(1)

経理(1)

javascript(1)

医療(1)

文書作成(1)

LookerStudio(1)

シフト(1)

セキュリティ(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

罫線(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page