VBAでArrayListクラス

.NET FrameworkのArrayListクラス

このページではJavaのArrayListクラスっぽいものを自作+紹介しています。

.NET FrameworkのArrayListの使い方については「VBAで.NET FrameworkのArrayListを使う」にて紹介していますのでご参照ください。

JavaのArrayListっぽいクラスを自作する

VBA以外のプログラミング言語を使うと便利な機能がよくあります。その1つがクラスです。

VBAにもクラスはあるのですが、機能が限定されています。

継承、抽象化、オーバーロード、オーバーライドなどの他の言語では当たり前のことが出来ません。あるのはメンバー変数とメソッドとカプセル化ぐらいです。コンストラクタはあります。

わざわざクラスモジュールを作らなくてもいいじゃん、と言われても仕方ないほどです。

クラスだけでなく、VBAの不得意な分野に配列があります。

サイズを最初に確保して、そのあとは必要に応じて拡張する、ということが必要ですが、はっきり言って面倒です。

そのVBAの不便な配列をどうにか少しでもマシに出来ないかと思い、.NET Frameworkがまともに使えない時代にJavaのArrayListっぽいクラスを作ってみたものに手を入れたものです。あくまでも「っぽい」です。いくつかの関数はJavaのArrayListとは違うメソッド名にしています。

ArrayListクラス説明

このArrayListクラスの説明です。

クラスのインスタンスが生成されるとメンバー変数のVariant配列(mvArray)を初期化します。このVariant配列がデータを格納するリストの実体になります。

あとは、リストへの追加、削除、参照、クリアなどの各メソッドを用意しています。下段の使い方を見て頂くとわかると思います。

以下がArrayListクラスのコードです。作成する際にはクラスモジュールとして追加してください。




ArrayListクラス

ArrayListクラスの使い方

使い方はこんな感じです。

Newしてインスタンスを作っているところはクラスっぽいですね。

関連記事

サブコンテンツ

このページの先頭へ