2016-04-29 16 views
-1

VBの配列の最後から要素を追加したり削除したりする必要があります。VBで配列を追加および削除する方法

Javaの場合、静的なグローバル変数を作成することで、これを完了します(配列に要素を追加する方法と配列から要素を削除する方法)。私がaddメソッドを呼び出すたびに、私はちょうど挿入し、場所の静的変数に1つを追加し、私は何かを削除する必要がある場合、私はその変数を取得し、それから1つを引くだろう。これは、配列の最後に要素を追加し、配列の最後の要素を削除する方法です。あなたはVBで同じ正確な方法でこの問題について取り上げることができますか?私は非常にVBに精通していないので、構文は私を捨てている。どんな助けもありがとう。

+0

私が正しく理解すれば、スタックを使用する必要があります。これはJavaでも当てはまります。 VBAでは、これを使用して1つを作成できます。 - > Set stack = CreateObject( "System.Collections.Stack")ここで、stackは型オブジェクトの変数です。 –

+0

https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx#Anchor_10 –

答えて

0

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 
関連する問題