投稿日 | : 2005/08/02(Tue) 19:43 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re: 配列の大きさを減らしたい |
> 動的配列では配列の大きさを大きくすることはできても、小さくできないと書いてありました。
ヘルプの下記の部分ですか?
同様に、キーワード Preserve を使用した場合、動的配列のサイズを変更するために変え
られるのは、添字の上限だけです。添字の下限を変更しようとすると、エラーが発生します。
この場合の添字の下限とは、ReDim Preserve a(1 to 10) のような 1 の値(下限)
を意味しており、a(10) の 10は上限になります。
ヘルプを見て解釈されたのだと思いますが、簡単な事なので試して見る事ですね。
(ヘルプが間違っている場合も結構ありますし)
下記を試して見て下さい。
Private Sub Command1_Click()
Dim a() As Integer
Dim i As Long
ReDim a(100)
For i = 0 To 100
a(i) = i
Next i
ReDim Preserve a(10)
For i = 0 To 10
Debug.Print a(i)
Next i
' ReDim Preserve a(1 To 10) ' 従ってこれはNG
End Sub
Private Sub Command1_Click()
Dim a() As Integer
Dim i As Long
ReDim a(100, 10, 10)
For i = 0 To 10
a(1, 1, i) = i
Next i
ReDim Preserve a(100, 10, 5)
For i = 0 To 5
Debug.Print a(1, 1, i)
Next i
End Sub