"入力配列"(リストカウントは固定されていません)があります。その "入力配列"内の各項目の新しい配列を作成し、各項目を独自の配列の最初の項目として追加する必要があります。VBA Excelで配列内の配列に値を定義して追加する
サブ配列の量が固定されていないため、配列のサイズの配列を定義できません。
どのように定義する必要がありますか?
"入力配列"(リストカウントは固定されていません)があります。その "入力配列"内の各項目の新しい配列を作成し、各項目を独自の配列の最初の項目として追加する必要があります。VBA Excelで配列内の配列に値を定義して追加する
サブ配列の量が固定されていないため、配列のサイズの配列を定義できません。
どのように定義する必要がありますか?
あなたが与えた説明に基づいて、私の提案に従ってください。
フィードバックをお願いします。ここで
Private Function CreateArray(length As Long)
Dim arr() As Variant
ReDim arr(length)
CreateArray = arr
End Function
は、関数の使用例を次に示します:動的配列を作成するために
Private Function AmazingFunction(inputArray As Variant)
Dim size As Long
Dim i As Long
Dim tmp As Variant
Dim newArray() As Variant
size = UBound(inputArray) ' Array size
ReDim newArray(size) ' Resizes another array to the same size
For i = 0 To size ' For each value
tmp = CreateArray(length:=0) ' Allows you to dynamically create arrays
' In this case, an array of only one element is created.
tmp(0) = inputArray(i) ' Sets the value of the first array element
newArray(i) = tmp
Next
AmazingFunction = newArray
End Function
補助機能
Private Sub UseTest()
Dim outArray As Variant
Dim intArray As Variant
Dim element As Variant
Dim inputArray(2) As Variant
inputArray(0) = "a"
inputArray(1) = "b"
inputArray(2) = "c"
outArray = AmazingFunction(inputArray)
For Each intArray In outArray
For Each element In intArray
Debug.Print element
Next
Next
End Sub
お時間をありがとう!私はReDim newArray(size)にコードを変更しなければなりませんでした。なぜなら、私は間隔の誤差を超えていたからです。 –
何??????????? – cyboashu
S.Oへようこそ!何か試しましたか?もしそうなら、コードを提供して、[ツアー](http://stackoverflow.com/tour)と[質問する](http://stackoverflow.com/help/how-to-ask)を見てください。 )。 – Sgdva
'Redim'(これはあまりにも短かったので、私はこれも読むことをお勧めします)(http://stackoverflow.com/documentation/vba/3064/arrays/16562/dynamic-arrays-array-resizing-and-dynamic -取り扱い))。 – Comintern