投稿日 | : 2005/08/03(Wed) 10:57 |
投稿者 | : chama |
Eメール | : |
URL | : |
タイトル | : Re^2: 配列の大きさを減らしたい |
ありがとうございます。
下限の意味を間違えてました。
私は、配列の最大値(上限と分かりました)を減らすことを下限は変更できないって
解釈していました。
ちなみに、配列の真ん中辺りのデータを削除して、配列の大きさを詰める作業は、
自分でいちいち定義してあげないとだめでしょうか。
> > 動的配列では配列の大きさを大きくすることはできても、小さくできないと書いてありまし
た。
> ヘルプの下記の部分ですか?
> 同様に、キーワード 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