Sub TEST1()
'選択した図形をコピー
Selection.Copy
Range("B6").Select 'セルを選択
ActiveSheet.Paste '貼り付け
End Sub
図形を選択しておきます。
図形を選択
では、実行してみます。
図形をコピーして貼り付け
選択した図形を、コピーして貼り付けできました。
オブジェクトを使ってみる
選択した図形をオブジェクトに格納して、コピーして貼り付ける場合は、こんな感じになります。
Sub TEST2()
'選択した図形をオブジェクトに格納
Set a = Selection
a.Copy 'オブジェクトをコピー
Range("B6").Select 'セルを選択
ActiveSheet.Paste '貼り付け
End Sub
図形を選択しておきます。
図形を選択
では、実行してみます。
図形をコピーして貼り付け
先ほどと同じように、選択した図形を、コピーして貼り付けできました。
VBAで指定した図形をコピーして貼り付け
次は、図形を指定して、コピーして貼り付けをしてみます。
Shapesを使ってコピーして貼り付け
指定した図形をコピーして貼り付けるVBAコードは、こんな感じになります。
Sub TEST3()
'指定した図形をコピー
ActiveSheet.Shapes("正方形/長方形 1").Copy
Range("B6").Select 'セルを選択
ActiveSheet.Paste '貼り付け
End Sub
図形を作成しておきました。
図形を用意
では、実行してみます。
図形をコピーして貼り付け
指定した図形を、コピーして貼り付けできました。
オブジェクトを使ってみる
指定した図形をオブジェクトに格納して、コピーして貼り付ける場合は、こんな感じです。
Sub TEST4()
'指定した図形をオブジェクトに格納
Set a = ActiveSheet.Shapes("正方形/長方形 1")
a.Copy 'オブジェクトをコピー
Range("B6").Select 'セルを選択
ActiveSheet.Paste '貼り付け
End Sub
図形を作成しておきました。
図形を用意
では、実行してみます。
図形をコピーして貼り付け
指定した図形を、コピーして貼り付けできました。
図形のコピーと貼付けは、Copyでコピーして、セルを選択したあと、アクティブシートに貼り付けです。
VBAでシート内の全ての図形を別シートにコピーして貼り付け
シート内の全ての図形を、別シートにコピーして貼り付けする、というのをやってみます。
For Eachを使う
シート全体の図形をコピーするのは、「For Each」を使います。
VBAコードは、こんな感じになります。
Sub TEST5()
'別シートを選択
Worksheets("Sheet2").Select
'シート内の図形をループ
For Each a In Worksheets("Sheet1").Shapes
a.Copy 'オブジェクトをコピー
ActiveSheet.Paste '貼り付け
Next
End Sub
「Sheet1」に複数の図形を用意しました。
複数の図形を用意
では、実行してみます。
別シートに全ての図形をコピーして貼り付け
あれっ。
別シートにコピーはできていますけど、位置も同じにしたいですね。
同じ位置に、コピーしたい場合は、図形の位置もコピーしてあげます。
位置もコピーして貼り付け
位置もコピーして、全ての図形を、別シートにコピーして貼り付けてみます。
VBAコードは、こんな感じになります。
Sub TEST6()
'別シートを選択
Worksheets("Sheet2").Select
'シート内の図形をループ
For Each a In Worksheets("Sheet1").Shapes
a.Copy 'オブジェクトをコピー
ActiveSheet.Paste '貼り付け'↓追加
Selection.ShapeRange.Left = a.Left '左の位置をコピー
Selection.ShapeRange.Top = a.Top '上の位置をコピー
Next
End Sub