配列 配列のコピー
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Private Sub Test() Dim i As Long Dim 動的配列A() Dim 動的配列B() Dim 静的配列C(5) Dim 静的配列D(0 To 5) Dim テスト動的配列A() Dim テスト動的配列B() Dim テスト動的配列C() Dim テスト動的配列D() For i = 0 To 5 ReDim Preserve 動的配列A(i) ReDim Preserve 動的配列B(i) 動的配列A(i) = "A" & i 動的配列B(i) = "B" & i 静的配列C(i) = "C" & i 静的配列D(i) = "D" & i Next i テスト動的配列A = 動的配列A テスト動的配列B = 動的配列B テスト動的配列C = 静的配列C テスト動的配列D = 静的配列D For i = LBound(テスト動的配列A) To UBound(テスト動的配列A) Debug.Print テスト動的配列A(i) Next i 'A0 'A1 'A2 'A3 'A4 'A5 For i = LBound(テスト動的配列B) To UBound(テスト動的配列B) Debug.Print テスト動的配列B(i) Next i 'B0 'B1 'B2 'B3 'B4 'B5 For i = LBound(テスト動的配列C) To UBound(テスト動的配列C) Debug.Print テスト動的配列C(i) Next i 'C0 'C1 'C2 'C3 'C4 'C5 For i = LBound(テスト動的配列D) To UBound(テスト動的配列D) Debug.Print テスト動的配列D(i) Next i 'D0 'D1 'D2 'D3 'D4 'D5 'コピー元配列の値を変更します。 For i = 0 To 5 動的配列A(i) = "w" & i 動的配列B(i) = "x" & i 静的配列C(i) = "y" & i 静的配列D(i) = "z" & i Next i For i = LBound(テスト動的配列A) To UBound(テスト動的配列A) Debug.Print テスト動的配列A(i) Next i 'A0 'A1 'A2 'A3 'A4 'A5 '値は変わりません '参照渡しではなく値渡しだからです。 '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End Sub |