Excel

【Excel】VBAマクロで図形の貼り付け・挿入(位置指定で作成・コピー:別シート・セル:名前もなど)する方法【Shapes.AddShape、Copy、Pasteメソッド】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロで図形を位置指定で作成したりコピーしたりする方法について解説していきます。

ポイントとしては、Shapes.AddShapeメソッド、CopyメソッドとPasteメソッドを使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

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

 

VBAマクロで図形をセル位置指定で作成したりコピーしたりする方法【名前もつけるといい】

それではまず、VBAマクロで図形を位置指定で作成したりコピーしたりする方法について解説していきます。

ここでは、B3セルに円形のオートシェイプを新規作成し、それをE5セルにコピー&ペーストします。作成した図形には名前もつけてみましょう(後に操作しやすいため)。

 

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


Sub aaaaaZukeiSakuseiaaaaa()
    
    'B3セルに円形のオートシェイプを作成
    ActiveSheet.Shapes.AddShape(msoShapeOval, Range("B3").Left, Range("B3").Top, 100, 100).Name = "aaaaaEnKeizukeaaaaa"
    
    '作成した図形をE5にコピー&ペースト
    ActiveSheet.Shapes("aaaaaEnKeizukeaaaaa").Copy
    Range("E5").Select
    ActiveSheet.Paste
    Selection.Name = "aaaaaEnKopyaaaaa"

End Sub

 

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

以下のようにB3がオートシェイプ左上と一致するよう作成後、コピー貼り付けが実行されています!

 

コードの意味詳細

上記のコードでは、以下のような処理を行っています。

1. Shapes.AddShapeメソッドを使って、B3セルの位置に円形(msoShapeOval)のオートシェイプを作成。幅と高さは100ポイントずつ指定。

2. 作成した図形に”aaaaaEnKeizukeaaaaa”という名前をつける。

3. Copyメソッドで、作成した図形をクリップボードにコピー。

4. Range(“E5”).Selectで、E5セルを選択。

5. ActiveSheet.Pasteで、クリップボードの内容(コピーした図形)をE5セルに貼り付け。

6. 貼り付けた図形に”aaaaaEnKopyaaaaa”という名前をつける。

で完了です!

VBAマクロで図形を位置指定で作成したり別シートにコピーしたりする方法【別シート】

続いては、VBAマクロで図形を位置指定で作成したり別シートにコピーしたりする方法について解説していきます。

ここでは、シート1のB3セルに星形のオートシェイプを新規作成し、シート2(別のシート)のF8セルにコピー&ペーストします。こちらも作成した図形には名前をつけます。

 

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

  
Sub aaaaaZukeiSakusei2aaaaa()

    'シート1のB3セルに星形のオートシェイプを作成
    Worksheets("Sheet1").Shapes.AddShape(msoShape5pointStar, Worksheets("Sheet1").Range("B3").Left, Worksheets("Sheet1").Range("B3").Top, 100, 100).Name = "aaaaaHoshiKeizukeaaaaa"
    
    'シート1の図形をコピー
    Worksheets("Sheet1").Shapes("aaaaaHoshiKeizukeaaaaa").Copy
    
    'シート2のF8セルを選択してペースト  
    Worksheets("Sheet2").Select
    Worksheets("Sheet2").Range("F8").Select
    ActiveSheet.Paste
    Selection.Name = "aaaaaHoshiKopyaaaaa"

End Sub

 

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

まずはシート1のB3に図形が作成・挿入できました!

シート2でも意図した操作ができていますね(F8にコピー貼りつけ)。

 

コードの意味詳細

このコードの処理内容は次の通りです。

1. Worksheets(“Sheet1”)を指定して、シート1で作業。

2. シート1のB3セルの位置に、星形(msoShape5pointStar)のオートシェイプを作成。

3. 作成した星形に”aaaaaHoshiKeizukeaaaaa”という名前をつける。

4. Copyメソッドで、作成した星形図形をクリップボードにコピー。

5. Worksheets(“Sheet2”).Selectで、シート2に移動。

6. シート2のF8セルを選択。

7. ActiveSheet.Pasteで、コピーした星形図形をシート2のF8セルに貼り付け。

8. 貼り付けた図形に”aaaaaHoshiKopyaaaaa”という名前をつける。

 

まとめ VBAマクロで図形の貼り付け(セル位置指定で作成:別シート:名前もなど)する方法【Shapes.AddShape、Copy、Pasteメソッド】

ここでは、VBAマクロで図形の貼り付け・挿入(位置指定で作成・コピー:別シート・セル:名前もなど)する方法【Shapes.AddShape、Copy、Pasteメソッド】について確認しました。

マクロの扱いになれ、さらに快適な生活を送っていきましょう!