Sub TEST6()
With ActiveSheet.ListObjects("テーブル1")
'3行目に行を追加
.ListRows.Add 3
'3行目に値を入力
.DataBodyRange(3, 1) = "AAA"
End With
End Sub
テーブルを用意しておきます。
テーブルを用意
実行すると、まず、テーブルの3行目に行が追加されます。
3行目に行が追加される
次に、テーブルの3行目に値が入力されます。
3行目に値を入力できた
テーブルの3行目に値を入力できました。
テーブルに値を貼り付けて追加
テーブルに値を貼り付けて、値を追加してみます。
Copyを使って値を貼り付ける
「.Copy」を使って値を貼り付けると、値を一括で追加できます。
値を貼り付ける
「.Copy」を使って、値を貼り付けるVBAコードです。
Sub TEST7()
'テーブルに値を貼り付け
Range("F3").CurrentRegion.Copy ActiveSheet.ListObjects("テーブル1").Range(2, 1)
End Sub
テーブルと、貼り付ける値を用意しておきます。
実行すると、テーブルに値を貼り付けできます。
テーブルに値を貼り付けできました。
構造化参照で、値を貼り付ける
構造化参照で、値を貼り付けてみます。
構造化参照の方がVBAコードがシンプルになります。
Sub TEST8()
'テーブルに値を貼り付け
Range("F3").CurrentRegion.Copy Range("テーブル1")
End Sub
実行すると、構造化参照を使って、テーブルに値を貼り付けできます。
構造化参照を使って、テーブルに値を貼り付けできました。
特定列のみ値を貼り付ける
特定列のみ値を貼り付けてみます。
特定列のみ値を貼り付ける
特定列のみの場合は、「.ListColumns(列の名前)」を使います。
Sub TEST9()
'「名前」の列に貼り付け
Range("F3").CurrentRegion.Copy ActiveSheet.ListObjects("テーブル1").ListColumns("名前").Range(2, 1)
End Sub
テーブルと、貼り付ける値を用意しておきます。
実行すると、「名前」の列に貼り付けできます。
「名前」の列に貼り付けできました。
構造化参照で、特定列のみ値を貼り付ける
構造化参照で、特定列のみ値を貼り付けてみます。
「.Range("テーブル名[列の名前]")」というように入力します。
Sub TEST10()
'「名前」の列に貼り付け
Range("F3").CurrentRegion.Copy Range("テーブル1[名前]")
End Sub
実行すると、構造化参照で、「名前」の列に貼り付けできます。
構造化参照で、「名前」の列に貼り付けできました。
最終行に値を貼り付ける
最終行に値を貼り付けてみます。
最終行に値を貼り付ける
最終行に貼り付けたいので、「.Range.Rows.Count + 1」とします。
Sub TEST11()
With ActiveSheet.ListObjects("テーブル1")
'テーブルの最終行に値を貼り付け
Range("F3").CurrentRegion.Copy .Range(.Range.Rows.Count + 1, 1)
End With
End Sub
テーブルと、貼り付ける値を用意しておきます。
実行すると、テーブルの最終行に、値を貼り付けできます。
テーブルの最終行に、値を貼り付けできました。
構造化参照で、最終行に値を貼り付ける
構造化参照で、最終行に値を貼り付けてみます。
構造化参照の場合は、「.Rows.Count + 1」とします。
Sub TEST12()
With Range("テーブル1")
'テーブルの最終行に値を貼り付け
Range("F3").CurrentRegion.Copy .Cells(.Rows.Count + 1, 1)
End With
End Sub
実行すると、構造化参照で、最終行に値を貼り付けできます。
構造化参照で、最終行に値を貼り付けできました。
配列をテーブルに入力する
次は、配列をテーブルに入力してみます。
Resizeを使って値を入力する
配列をテーブルに入力したい場合は、「Resize」を使って値を入力します。
配列をテーブルに入力
配列をテーブルに入力するVBAコードです。
Sub TEST13()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
'テーブルに、配列を入力
ActiveSheet.ListObjects("テーブル1").Range(2, 1).Resize(3, 3) = A
End Sub
応用が利くように「UBound」を使うと、便利です。
Sub TEST14()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
'テーブルに、配列を入力
ActiveSheet.ListObjects("テーブル1").Range(2, 1).Resize(UBound(A, 1), UBound(A, 2)) = A
End Sub
テーブルと、入力する値を用意しておきます。
実行すると、配列をテーブルに入力することができます。
配列をテーブルに入力することができました。
構造化参照で、配列をテーブルに入力
構造化参照で、配列をテーブルに入力してみます。
同じように「.Resize」を使います。
構造化参照の方が、VBAコードがシンプルになります。
Sub TEST15()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
'テーブルに、配列を入力
Range("テーブル1").Resize(UBound(A, 1), UBound(A, 2)) = A
End Sub
実行すると、構造化参照で、配列をテーブルに入力できます。
構造化参照で、配列をテーブルに入力できました。
特定列のみ値を入力する
特定列のみに、配列を入力してみます。
特定列のみ配列を入力
特定列のみ配列を入力するVBAコードです。
特定列の場合は、「.ListColumns」と「.Resize」を組み合わせます。
Sub TEST16()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
'「名前」の列に、配列を入力
ActiveSheet.ListObjects("テーブル1").ListColumns("名前").Range(2, 1).Resize(UBound(A, 1), UBound(A, 2)) = A
End Sub
テーブルと、入力する値を用意しておきます。
実行すると、「名前」の列に、配列を入力できます。
「名前」の列に、配列を入力できました。
構造化参照で、特定列のみ配列を入力
構造化参照で、特定列のみ配列を入力してみます。
Sub TEST17()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
'「名前」の列に、配列を入力
Range("テーブル1[名前]").Resize(UBound(A, 1), UBound(A, 2)) = A
End Sub
実行すると、構造化参照で、「名前」の列に、配列を入力できます。
構造化参照で、「名前」の列に、配列を入力できました。
最終行に入力する
次は、配列を、テーブルの最終行に入力してみます。
最終行に配列を入力
最終行に配列を入力するVBAコードです。
「.Range.Rows.Count + 1」と「.Resize」を組み合わせます。
Sub TEST18()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
With ActiveSheet.ListObjects("テーブル1")
'テーブルの最終行に、配列を入力
.Range(.Range.Rows.Count + 1, 1).Resize(UBound(A, 1), UBound(A, 2)) = A
End With
End Sub
テーブルと、入力する値を用意しておきます。
実行すると、テーブルの最終行に、配列を入力することができます。
テーブルの最終行に、配列を入力することができました。
構造化参照で、最終行に配列を入力
構造化参照で、テーブルの最終行に配列を入力してみます。
構造化参照の場合は、「.Rows.Count」と「.Resize」を組み合わせます。
Sub TEST19()
Dim A
'配列を作成
A = Range("F3").CurrentRegion
With Range("テーブル1")
'テーブルの最終行に、配列を入力
.Cells(.Rows.Count + 1, 1).Resize(UBound(A, 1), UBound(A, 2)) = A
End With
End Sub