とことこプーレ

【第11回Excelマクロ】表にデータを追加【ほぼfor/if文】

今回は、Excelの以下の表に、

別のシート上に準備した以下のデータを表に追加していきます。

表を作成するコードは以下になります。

Dim ws As Worksheet 'ワークシート1のオブジェクト変数を宣言
Set ws = ThisWorkbook.Sheets(1)

Dim pikachuArray As Variant  'ピカチュウの配列
pikachuArray = [{"CP","HP","重さ","高さ"," 性別";391,64,6.5,0.4,"オス"}]

For i = LBound(pikachuArray, 1) To UBound(pikachuArray, 1)     'wsの1行目の1列目に2次元配列を出力
    For j = LBound(pikachuArray, 2) To UBound(pikachuArray, 2)
        ws.Cells(i, j).Value = pikachuArray(i, j)
    Next j
Next i

Dim ws2 As Worksheet 'ワークシート2のオブジェクト変数を宣言
Set ws2 = ThisWorkbook.Sheets(2)
Dim PikachuArrayAdd As Variant  '追記するピカチュウの配列
PikachuArrayAdd = [{260,60,5.5,0.35,"メス"}]

For i = LBound(PikachuArrayAdd, 1) To UBound(PikachuArrayAdd, 1)     'ws2の1行目の1列目に1次元配列を出力
        ws2.Cells(1, i).Value = PikachuArrayAdd(i)
Next i

データの追加

を繰り返すことでデータを追加していきます。

以下のコードをコピペして実行してみましょう。

Dim lastRow As Long, lastCol As Long   '最終行をlong型で宣言
lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row    '最終行取得

For i = LBound(PikachuArrayAdd, 1) To UBound(PikachuArrayAdd, 1)     'wsの最終行の下の行に1次元配列を出力
        ws.Cells(lastRow + 1, i).Value = PikachuArrayAdd(i)
Next i

以下のように、表に追加されれば成功です。

また、実行を繰り返すと次々とデータが追記されていきます。

最後に

今回は1つのデータを追加していきましたが、複数のデータを一括で追加したり、フォームでユーザーに入力させたデータを追加したりといろいろ使えるので便利です。

特に、Excelの表をデータベースとして使う際に非常に役に立ちます。ぜひ使ってみましょう。

モバイルバージョンを終了