2017-09-28
ExcelVBA覚書 図形コピー
ワークシート上にある「SHP1」という名前の図形をコピーして、「SUB_SHP1」という名前を付け、B2セル内に配置するロジックを考えてみた。
コピー元の図形のDuplicateメソッドをつかって、新しい図形(コピー先:以下サンプルでは変数「shp」のこと)を作り、その新しい図形のプロパティをいじって、図形の位置とか、図形の名前、図形に紐づくマクロの設定などを行う。
サンプルでは、セルB2の下部中央に配置する方法。
Dim ws As Worksheet Dim shp As Shape Set ws = Thisworkbook.Worksheets("Sheet1") Set shp = ws.Shapes("SHP1").Duplicate With shp .Top = ws.Range("B2").Top - .Height -5 .Left = ws.Range("B2").Left + (ws.Range("B2").Width - .Width) / 2 .Name = "SUB_SHP1" .Visible = msoTrue .OnAction = "RunXXX" End With Set shp = Nothing Set ws = Nothing
図形のコピーに「Duplicate」を使うというのは初めて知った。duplicateの意味が「複写する」ってことらしい。