ポケモンデータの転記について

できること

f:id:JedenTag:20190421155143p:plain
入力シートからデータシートに行単位で転記を行います。

'Rangeオブジェクト:固定位置のセルの場合、セル範囲の場合、名前定義を使う場合
'Longオブジェクト: 整数を格納する型の一種
'オブジェクト名を使って型指名する!
Sub addNewRecord(newRecordList() As Variant)
Dim newRecordRng As Range, rowNo As Long


'インデックスの値(管理番号)を指定して一つ一つ格納する
'newRecordList = Array(1,2,3,4,5,6,7)

'With:同じオブジェクトに対して複数の処理を実行する記述(With オブジェクト名)
With Worksheets("データシート")

'"xlDownを使っていないのは、途中のセルに空欄があると止まり最終行を取得できないため
'Rows:Rangeオブジェクトを返すRowsプロパティ
'Count:RangeオブジェクトのCountプロパティ
'Rows.Count:データの入力されている最終行を表す
'B列のデータ入りのセルの最後の行の下のセル
     rowNo = .Cells(Rows.Count, "B").End(xlUp).Row + 1
     
'Set:変数に何かを代入する命令をする
     Set newRecordRng = .Range(.Cells(rowNo, "A"), .Cells(rowNo, "C"))
     
     
End With
     
     newRecordRng.Value = newRecordList
     
     

End Sub




Sub 転記()

'3つのデータを扱う配列を用意
Dim dataRng As Range, dataCount As Long, i As Long

'可変するデータを扱うセル範囲をセット
'可変位置にあるセルから、今回のデータの総数を算出
Dim tmpRec(2) As Variant
Set dataRng = Range("B1:B3")

'WorksheetFunction:VBAの標準の関数にない機能が使える
'COUNTA関数:dataRngとColumns(1)のデータ数を求める
dataCount = _
    Application.WorksheetFunction.CountA(dataRng.Columns(1))

'転記用データを作成
'1行から最終行(dataCount)まで繰り返す
For i = 1 To dataCount
    
    '可変部分(行ごとに転記をしたい場合)
    tmpRec(0) = dataRng.Cells(1, i).Value
    tmpRec(1) = dataRng.Cells(2, i).Value
    tmpRec(2) = dataRng.Cells(3, i).Value
   
    
    
  
    Call addNewRecord(tmpRec)
    
        
Next
End Sub