_基本ExcelVBA

図形を移動する【Shape.Left/Topプロパティ】【ExcelVBA】

図形の移動

図形(オートシェイプ)を移動したいときは Shape.LeftプロパティShape.Topプロパティ を使います。
Leftプロパティ は左端の位置、Topプロパティ は上端の位置を設定します。

設定方法は以下のようなものがあります。

  • ワークシートの左/上端からの距離で設定する場合
    Shape.Left/Top = ポイント数
  • セルの左/上端に合わせる場合
    Shape.Left/Top = Range(“セル“).Left/Top
  • 現在の位置から何ポイント移動するか決める場合
    Shape.Left/Top.Left/Top +/- ポイント数

 

図形を移動するサンプルコード

Public Sub Sample()
 '図形を作成
  ActiveSheet.Shapes.AddShape(msoShapeOval, 50, 50, 80, 80).Name = "丸"

 '■ワークシートからの距離を指定して移動
    With ActiveSheet.Shapes("丸")
        .Left = 100  ' ワークシートを基準に100pt左
        .Top = 100   ' ワークシートを基準に100pt下
    End With
 
 '■セル番地を指定して移動
    With ActiveSheet.Shapes("丸")
        .Left = Range("B1").Left  ' セルB1の左端に合わせる
        .Top = Range("A3").Top   ' セルA3の上端に合わせる
    End With
 
 '■現在の位置から動かすポイント数を指定して移動
    With ActiveSheet.Shapes("丸")
        .Left = .Left + 20   ' 右へ20pt
        .Top = .Top - 10     ' 上へ10pt
    End With

End Sub

 

 

関連記事

コメント

タイトルとURLをコピーしました