top of page

​タグ一覧

配列処理(64)

階層化フォーム(33)

ファイル操作(23)

シート・セル操作(11)

コード自動生成(10)

ユーザーフォーム(8)

図形操作(7)

GAS(5)

アニメーション(5)

技術解説(4)

副業(4)

考え方(4)

条件付き書式(4)

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

Enum(3)

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

ココナラ(3)

クリップボード(3)

介護(3)

開発効率化(2)

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

PDF(2)

フリーランス(2)

リスキリング(2)

Excel(2)

Excel小ネタ(2)

数学(2)

Outlook(2)

文字列操作(2)

小説(2)

HTML(2)

JavaScript(2)

日報(2)

カレンダー(2)

パズル(2)

ステータスバー(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)

開発事例(1)

一次元配列を条件指定で抽出する汎用プロシージャ Excel VBA

一次元配列を条件指定で抽出する汎用プロシージャ Excel VBA

<概要>

Excel VBA で処理をしていると、「配列の中から条件に合う要素だけを抜き出したい」という場面は非常に多く出てきます。


例えば次のようなケースです。

  • 商品名配列から「特定の文字を含むもの」だけ抽出したい

  • ID一覧から「○○で始まるもの」だけを取得したい

  • 数値配列から「一定値以上」のデータだけを扱いたい

  • 日付配列から「指定日以降」のデータを抽出したい


このような処理を 毎回 For~If で書くのは非効率 ですし、条件が増えるたびにコードが肥大化しがちです。


そこで使えるのが、今回紹介する FilterArray1D です。


FilterArray1D とは?

FilterArray1D は、

  • 一次元配列(1 To N)

  • フィルター値

  • 抽出条件(Enum)


を指定するだけで、条件に合致した要素だけを 一次元配列として返す 汎用関数です。

内部では、


  1. 一次元配列 → (N×1) の二次元配列へ変換

  2. 汎用フィルタ関数 FilterArray2D で抽出

  3. 再び一次元配列へ戻す


という構造になっており、文字列・数値・日付を安全に扱える設計になっています。



使用できる主な抽出条件

Enum Enumフィルタ条件 により、次のような指定が可能です。

  • vbと等しい

  • vbと等しくない

  • vbを含む

  • vbを含まない

  • vbから始まる

  • vbから始まらない

  • vbで終わる

  • vbで終わらない

  • vbより大きい

  • vb以上

  • vbより小さい

  • vb以下


👉 文字列判定・数値判定・日付判定を1つの関数で統一できるのが大きな特徴です。


<実行例>

 サンプル①:完全一致で抽出する


 サンプル②:「文字を含む」で抽出する

 

 サンプル③:「から始まる/で終わる」


 サンプル④:数値の大小比較

 

<関連コード>

 今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。


<関連記事>

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

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


<コード>


コメント

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

評価を追加
Softex-Celware

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page