【VBA】キューを実装する

VBA
この記事は約2分で読めます。

 

VBAにデータ構造のキューがないので
クラスモジュールを使用してキューを実装してみます。

クラスモジュールの使用方法については
下記サイト様の情報を参照させていただきました。
ありがとうございます。

VBA クラスモジュール 超 入門 - t-hom’s diary
このブログではこれまでにクラスモジュールを活用したコードをいくつか紹介してきたが、使いどころの紹介がメインでクラスモジュールそのものの使い方について一から学べるような構成は取っていなかった。今回は「クラスモジュール超入門」と題してクラスモジュールを初めて使う方やオブジェクト指向がいまひとつ分からないという方に向けて解説...
ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
Excelのクラスモジュールを使ったプロパティ設定の書き方、サブルーチンの使い方などを、図解を交えてまとめました。標準モジュールの使い方に慣れてきて、もうちょっとステップアップしたい中級者向けです。

キューの構造

キューはデータ構造の一種です。
FIFO(First In First Out)といわれる
最初に入れたデータが、最初に取り出される構造になっています。
キューにデータを入れる操作をenqueue(エンキュー)
キューからデータを取り出す操作をdequeue(デキュー)といいます。

 

 

実装する機能

今回はクラスモジュールを使用して、下記の機能を実装してみます。

  • キューの末尾にデータを追加するenqueue(エンキュー)
  • キューに存在する先頭のデータを取り出すdequeue(デキュー)
  • キューに存在するデータ数をカウントするcount(カウント)

キューの実装

クラスモジュールを追加します。

追加されたクラスモジュール名をClass1からQueueに変更します。

 

Queueクラスのコードは以下になります。
Collection型を利用してキューを実装しています。

 

キューのテスト

標準モジュールを追加します。

 

追加した標準モジュールにQueueをテストするコードを貼り付けます。
Queueクラスをテストするコードは以下になります。

 

enqueueメソッドで1,2,3をキューに追加後
dequeueメソッド4回実行しています。

最初に追加した1から、順番にデータを取り出していきます

 

4回目のdequeueメソッド実行時にデータがキューに
存在しないので、エラーが発生します。
エラー番号は1000番で設定しています。

 

Github

GitHub - kazusapg/vba_queue
Contribute to kazusapg/vba_queue development by creating an account on GitHub.

コメント