In my VBA code i\'m using the following:
Dim docsToSave As Scripting.Dictionary
Set docsToSave = New Scripting.Dictionary
Dim toRemove As Collection
Set toRemov
Either you have to use arrays, and manage the resizing yourself as you add and delete items to/from it, or you can use a dictionary and manage the keys as integers. I usually do the latter.
'create dictionary
set dict = CreateObject("Scripting.Dictionary")
'add object
dict.add dict.count,objectOrValue
'loop
for i = 0 to dict.count -1
objectOrValue = dict.item(i)
...
next
This should behave much like a zero-based collection if you want to keep the one-based behavior of the vba collection use "dict.count+1" as the key
For the posted code to behave in the same way in VBScript as it would in VBA the following could be used:
Dim docsToSave
Set docsToSave = CreateObject("Scripting.Dictionary")
Dim toRemove
Set toRemove = CreateObject("Scripting.Dictionary")
...
More Code
...
For i = 0 To toRemove.Count - 1
docsToSave.Remove (toRemove.keys()(i))
Next
Furthermore, to add to the Dictionary a different syntax is used compared to a Collection:
'VBA-code for a collection:
toRemove.Add (x)
'VBScript for a dictionary:
Call toRemove.Add(x, i)
These changes were sufficient for me to have my VBA-script work in VBScript.