Excel

【Excel】VBAマクロで配列に追加する方法(ループ、セルの値、1次元の末尾や先頭に要素を増やす)【ReDim Preserve、Cells】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事ではVBAマクロで配列に追加する方法(ループ、セルの値、1次元の末尾や先頭に要素を増やす)【ReDim Preserve、Cells】について解説していきます。

ポイントとしては`ReDim Preserve`や`Cells`プロパティを使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切なものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

 

VBAマクロで配列に追加(1次元の末尾に要素を増やす)する方法【さくらもち・マントヒヒ・アイスに追加】

それではまず、1次元配列の末尾に要素を追加する方法について解説していきます。

このプロセスは、特定のデータを既存の配列に動的に追加したい場合に特に便利です。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub HairetsuNiTsuika()
    Dim KajitsuHairetsu() As Variant
    Dim Ichi As Integer
    
    ' 配列に最初の要素を追加
    ReDim KajitsuHairetsu(0)
    KajitsuHairetsu(0) = "Sakuramochi"
    
    ' 配列の末尾に要素を追加
    Ichi = UBound(KajitsuHairetsu) + 1
    ReDim Preserve KajitsuHairetsu(Ichi)
    KajitsuHairetsu(Ichi) = "Mantohihi"
    
    ' 更にもう一つ要素を追加
    Ichi = UBound(KajitsuHairetsu) + 1
    ReDim Preserve KajitsuHairetsu(Ichi)
    KajitsuHairetsu(Ichi) = "Aisu"
    
    ' 結果を表示
    Dim i As Integer
    For i = LBound(KajitsuHairetsu) To UBound(KajitsuHairetsu)
        Debug.Print KajitsuHairetsu(i)
    Next i
End Sub

コードのAlt+F8を押し、マクロ選択画面で`HairetsuNiTsuika`関数を実行します。

このコードでは、最初に`”Sakuramochi”`を配列に追加し、その後`”Mantohihi”`と`”Aisu”`を末尾に追加しています。

`ReDim Preserve`文を使用して配列のサイズを調整しながら、挿入できるコードとなっっております。

 

VBAマクロで配列に追加(別シートのA列2行目から最終行までのセルの値をループで追加:1次元)する方法

続いては、別シートのA列2行目から最終行までのセルの値をループで追加する方法について解説していきます。

自身で入力していくのが面倒な際に便利な処理と思います(^^)/

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub SheetKaraHairetsuNiTsuika()
    Dim KajitsuHairetsu() As Variant
    Dim Shisuu As Long
    Dim SaigoNoGyou As Long
    Dim WS As Worksheet

    ' 使用するワークシートを設定
    Set WS = ThisWorkbook.Sheets("Sheet2")

    ' A列の最終行を取得
    SaigoNoGyou = WS.Cells(WS.Rows.Count, 1).End(xlUp).Row

    ' 配列を初期化
    ReDim KajitsuHairetsu(SaigoNoGyou - 2)

    ' A列の値を配列に追加
    For Shisuu = 2 To SaigoNoGyou
        KajitsuHairetsu(Shisuu - 2) = WS.Cells(Shisuu, 1).Value
    Next Shisuu

    ' 結果をデバッグウィンドウに表示
    Dim i As Long
    For i = LBound(KajitsuHairetsu) To UBound(KajitsuHairetsu)
        Debug.Print KajitsuHairetsu(i)
    Next i
End Sub

コードのAlt+F8を押し、マクロ選択画面で`SheetKaraHairetsuNiTsuika`関数を実行します。

このコードでは、指定されたワークシート(この例では”Sheet2″)のA列から、2行目から最終行までのデータを配列に追加しています。

ループを使用して各セルの値を読み取り、どんどん配列に格納していっているわけです(^^)/

具体的には`ReDim`を利用して配列のサイズを初期設定し、その後、ループ内で値を配列に代入するイメージですかね。

 

まとめ VBAで配列(リスト)に追加する方法(セルの値、1次元の末尾や先頭に要素を増やす)【ReDim Preserve、Cells】

この記事ではVBAマクロで配列に追加する方法(ループ、セルの値、1次元の末尾や先頭に要素を増やす)【ReDim Preserve、Cells】について確認しました。

マクロをマスターしてさらに快適に過ごしていきましょう(^^)/