静的配列を動的配列にコピーする

何のことだ? as Variant で = すればいいのでは?と思ったあなたは、できればこの苦労はしない方が良い。
あぁわかる、苦労するよねと思ったあなた、結構な使い手ですね。


Private Sub StaticToDynamic()
Dim StaticArray(1 To 3) As Long, DynamicArray() As Long, LC As Long

 StaticArray(1) = 5
 StaticArray(2) = 7
 StaticArray(3) = 9
 
 ReDim DynamicArray(1 To UBound(StaticArray))

 For LC = LBound(StaticArray) To UBound(StaticArray)
  DynamicArray(LC) = StaticArray(LC)
 Next LC
End Sub

配列は静的と動的があり、コードで
アーリー宣言するのが静的で、
レイト宣言するのが動的なのだが、(極論だからね)
2次元配列の一部をコピーしたい時に、この罠にハマる事がある…
オリジナル as Variant(n) からコピー as Variant(n) に移行したい時に頭を抱えるのです。

上手くコピーできでても、1,2 が (1),(2) とかに分かってないと悲惨の極致だったりするし。

配列変数の難易度はこのへんもあるのだろうなとは思う。

 

この記事が気に入ったらサポートをしてみませんか?