動的配列を使ってランクをつける

こんにちは。伊川(@naonaoke)です。

ユーザー定義関数を紹介してきました。

今回は、ユーザー定義関数と配列を使って値に、ランクをつけたいと思います。


ユーザー定義関数については、上の記事を参考にしてください。


スポンサーリンク



配列とユーザー定義関数を組み合わせる

VBAでランクをつけようとすると、結構面倒です。

構文は下記の通りです。

【構文】
WorksheetFunction.Rank( 数値 , 範囲 [, 順序] )
【戻り値】 倍精度浮動小数点型 (Double)

VBAでは、Rangeのみ利用できるようで、cellsでは利用できないみたいです。

実際にコードを記載してみると、確かに作動しません。




配列とユーザー定義関数 作成手順その1 データベースを確認


上の値にランクをつけます。




配列とユーザー定義関数 作成手順その2 ユーザー定義関数を作成する


できるだけ日本語を使ってランクをつける関数を作成しました。

ユーザー定義関数は、frankという関数です。

多分、難しいのは、frank(ByVal 順位 As Single, ByVal 範囲, ByVal 個数 As Integer, 判定 As Boolean) の部分だと思います。

これは、frankがどのような動きをするかという事を示しています。




配列とユーザー定義関数 作成手順その3 ユーザー定義関数をワークシートで使う

ワークシートで = を打ち込んで、frと入力する

ワークシートで使おうとすると、上の図のようになります。

ダイアログボックスを表示させる



赤枠の中が、frank(ByVal 順位 As Single, ByVal 範囲, ByVal 個数 As Integer, 判定 As Boolean)です。


これで完成です。






配列とユーザー定義関数 作成手順その4 どこの場所に配列をつかうのか?


結局、配列は、文字を比べるなど、このような処理をするのに長けています。

配列とユーザー定義関数 作成手順その5 配列のコード


動的配列の記事は、上の記事を参考にしてください。


ここがポイント

ここがポイント
Function8.png
本当に初めて、配列が便利と理解した瞬間でした。配列は、

ユーザー定義関数を作成できるようになる。

ユーザー定義関数を利用して、文字を比べる等の処理をするには、配列を使う。

 

上の記事が理解できれば、問題ないと思います。




まとめ

配列のシリーズは、この辺で終了にします。

もちろんクラスモジュールは解説します。

クラスモジュールも配列なのでしょうけど。

 

今回のサンプルファイルは、No130です。

サンプルファイルの購入
ブログが動画で紹介した内容のサンプルファイルを
購入できます。月額3,000円です。
練習用ファイルもダウンロードできます。
PayPal経由でお支払いでます。
ダウンロード回数に制限はありません。
スポンサーリンク

Twitterでフォローしよう

おすすめの記事