vba queue fifo code example

Example: excel vba queue

'VBA does not include a native QUEUE (FIFO: FIRST-In-FIRST-Out) memory 
'structure. It is possible to implement a QUEUE using nothing but a native
'array or collection.

'However, the easiest solution is to have VBA create and use a .NET Queue:
Set Queue = CreateObject("System.Collections.Queue")
Queue.Enqueue "I"  
Queue.Enqueue "was"  
Queue.Enqueue "here."  
  
MsgBox Queue.Dequeue		'<--displays: I
'Note:  Dequeue() removes the bottom (first-added) item from the Queue.
  
'  		Peek() will return the bottom value without removing it:
MsgBox Queue.Peek  			'<--displays: was

'Queue interrogation:  
MsgBox Queue.Count			'<--displays: 2.  Count() returns 0 if Stack empty.
MsgBox Queue.Contains("I")	'<--displays: False

'Queue to 1D VBA array (zero based):
arr = Queue.toArray
MsgBox arr(0)				'<--displays: was   Queue is unaltered.
  
'Clone the Queue:
Set Queue2  = Queue.Clone	'<--Queue is not affected by ops on Stack.
    
'Empty the Queue:
Queue.Clear  				'<--Stack now empty, but can take a new Push().
    
    
'NB:	Queues can hold simple values and also complex objects.
    
'Reference: 
'    https://docs.microsoft.com/en-us/dotnet/api/system.collections.queue

Tags:

Vb Example