FrameworkVBAでキュー(Queue)を使うにはキューとはデータを入れた順に取り出す仕組みのことで、ところてん方式とか言われることもあります。キューにデータを入れるエンキューと言い、取り出すことをデキューと言います。このキューですが、VBAの標準の仕組みでは実装されていません。そのため、自作するか外部ライブラリを利用するかのどちらかになります。自作するのであればクラスにエンキューとデキューのメソッドを用意して、データを保持する仕組みに配列かコレクションで実装する形になってくると思います。キューを使う場合では一般的にはかなりの高速性や完全な排他制御を求められることが結構多く、そのような要求を満たすためにC言語+ミューテックスによる実装を行ったりすることが多くなりがちです。それに加えてVBAではそもそもキューを使う要件が少なく、高速性などの厳しい条件を求められることは少ないため、VBAにはキューが実装されていないのかもしれません。言っても複数のブックに実装しているVBA間で排他や同期をとりたい場合などにキューの仕組みが必要になることもあります。FrameworkのSystem.Collections.Queueクラスを利用する方法について説明します。FrameworkのSystem.Collections.Queueクラスを利用するには事前に参照設定が必要です。VBA画面のツールメニュー→参照設定で以下の選択もしくは参照してください。FrameworkのArrayListを使う」にも書いていますのでご参照ください。System.Collections.Queueクラスの使い方とコード例System.Collections.Queueの各メソッドやプロパティの詳細は以下です。MSDNの日本語がおかしいのは標準仕様ですのでなんとか読み取ってください。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.queue?view=netframework-4.8メソッド等の詳細はリンクで見てもらうとして、実際にVBAで書く場合はどのように書くのかのコード例を紹介します。SubサンプルコードにはSystem.Collections.Queueクラスのデータを入れるEnqueueメソッド、取り出すDequeueメソッド、データが含まれているか確認するContainsメソッド、最終データを取得し削除はしないPeekメソッド、の4つを使っています。変数宣言の2行目と3行目はどちらでもいいです。同様に7行目と8行目もどちらでもいいです。サンプルに書いた他にもQueueクラスにはプロパティやメソッドが用意されていますが、全てが使えるかどうかまでは確認していないため、必要なプロパティやメソッドがある場合は色々試してみてください。eachやwhileで使えるかどうかを試してみようと反復列挙子を取得するGetEnumerator()メソッドを試してみましたが、取得までは出来たのですがそのあとの利用ができませんでした。書き方の問題かもしれません。Excel作業をVBAで効率化シェアお問合わせTOPへ。