エクセルバージョン
マイクロソフト365
今回はVBAで配列のコピーについて解説します、
それではいってみましょう(^^)
Menu
先頭をコピー
1 2 3 4 5 6 7 8 9 10 | Sub 先頭をコピー() '①コピー元に動的配列を作成して値を格納 Dim ary As Variant ary = Array("牛丼", "豚丼", "かつ丼", "まぐろ丼", "鉄火丼") '②コピー先に先頭のみをコピペ Dim aryCopy(0) As String aryCopy(LBound(aryCopy)) = ary(LBound(ary)) End Sub |
【解説】
①コピー元の配列を作成して値を格納します。
②コピー先の配列を1つのみ作成して、Lboundでインデックスの最小値の配列をコピペして完成です\(^^)/
末尾をコピー
1 2 3 4 5 6 7 8 9 10 | Sub 末尾をコピー() '①コピー元に空の配列を作成して値を格納 Dim ary As Variant ary = Array("牛丼", "豚丼", "かつ丼", "まぐろ丼", "鉄火丼") '②コピー先に空の配列を作成して末尾のみをコピペ Dim aryCopy(0) As String aryCopy(LBound(aryCopy)) = ary(UBound(ary)) End Sub |
①コピー元の配列を作成して値を格納します。
②コピー先の配列を1つのみ作成して、Uboundでインデックスの最大値の配列をコピペして完成です(((^-^)))
全コピー
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Sub 全コピー() '①コピー元に空の配列を作成して値を格納 Dim ary As Variant ary = Array("牛丼", "豚丼", "かつ丼", "まぐろ丼", "鉄火丼") '②aryCopyを動的配列で宣言。 Dim i As Integer Dim aryCopy() As String For i = 0 To UBound(ary) '再定義で配列数を変更 ReDim Preserve aryCopy(i) 'コピペ aryCopy(i) = ary(i) Next End Sub |
【解説】
①コピー元の配列を作成して値を格納します。
②For文で繰り返しRedimPreserveで配列aryCopyの値と配列数を維持しながら、1個ずつコピペして完成です(^^♪
指定範囲をコピー
豚丼からまぐろ丼をコピペする例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Sub 指定範囲をコピー() Const STARTNUM As Integer = 1 'Forの開始値(豚丼) Const ENDNUM As Integer = 3 'Forの終了値(まぐろ丼) '①コピー元に空の配列を作成して値を格納 Dim ary() As Variant ary = Array("牛丼", "豚丼", "かつ丼", "まぐろ丼", "鉄火丼") '②aryCopyを動的配列で宣言。 Dim i, copyNum As Integer Dim aryCopy() As Variant 'Forの開始値と終了値は定数Constで指定 For i = STARTNUM To ENDNUM '再定義で配列数を変更 ReDim Preserve aryCopy(copyNum) 'コピペ aryCopy(copyNum) = ary(i) 'copyNumのインデックスを+1する copyNum = copyNum + 1 Next End Sub |
①コピー元の配列を作成して値を格納します。
②For文でコピー元のインデックスを定数Constの開始値と終了値を指定して、繰り返しRedimPreserveで配列aryCopyの値と配列数を維持しながら、1個ずつコピペして完成です(*゚▽゚)ノ
デバッグ方法 → 変数の中身の確認方法(ウォッチとブレイクポイント)
まとめ
配列のコピーは簡単ですね(((^-^)))
以上です。