Collection
オブジェクトを使用できる場合を除いて、配列でこれを行うための組み込みまたは直接の方法はありません。アレイと
Public Sub TestArr()
Dim list As New Collection
list.Add "John"
list.Add "Mary"
list.Add "Bob"
list.Remove 1
End Sub
は、既存のデータを保つためにPreserve
キーワードを使用してそれらをReDim
することができます。
Public Sub TestArr()
Dim list() As Variant
'Creates a dynamic list of 10 items
ReDim list(1 To 10)
Dim i As Long
For i = 1 To 10
list(i) = "Item" & CStr(i)
Next i
'Append to the end of an array
AppendToArray list, "NotAnItem"
'Remove the 5th element
RemoveFromArray list, 5
End Sub
Public Sub AppendToArray(ByRef list() As Variant, ByVal item As Variant)
Dim n As Long
n = UBound(list)
' Make Room
ReDim Preserve list(1 To n + 1)
' Assign new value
list(n + 1) = item
End Sub
Public Sub RemoveFromArray(ByRef list() As Variant, ByVal index As Long)
Dim n As Long, i As Long
n = UBound(list)
' Move last items down by one
For i = index To n - 1
list(i) = list(i + 1)
Next i
ReDim Preserve list(1 To n - 1)
End Sub
私が正しく理解すれば、スタックを使用する必要があります。これはJavaでも当てはまります。 VBAでは、これを使用して1つを作成できます。 - > Set stack = CreateObject( "System.Collections.Stack")ここで、stackは型オブジェクトの変数です。 –
https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx#Anchor_10 –