即効テクニック

図形操作関連のテクニック

図形の位置を設定する

(Excel 2000)
対象の図形の上端位置、左端位置を設定します。
用いられる座標軸はRangeオブジェクトのTop/Leftプロパティと同じなので、それを利用して目的の位置に図形を配置するといいでしょう。


  構文  Object.Top     図形の上端位置    設定/取得
        Object.Left    図形の左端位置    設定/取得


  設定項目              内容
  Object                Shape、ShapeRangeコレクションオブジェクト [省略不可]


次のサンプル1はアクティブシートのすべての図形をセルB2の位置へ移動させます。


●サンプル1●

 Sub TopAndLeftSamp1()
     Dim Sh As Shape

     For Each Sh In ActiveSheet.Shapes  '---アクティブシート全ての図形に対し
         Sh.Top = Range("B2").Top       '---上端位置をB2の上端へ
         Sh.Left = Range("B2").Left     '---左端位置をB2の左端へ
     Next Sh

 End Sub


図形間の元の位置関係は失われ、すべての図形がセルB2の位置に集まります。


●サンプル2●

 Sub TopAndLeftSamp2()
     Dim myShRange As ShapeRange

     ActiveSheet.Shapes.SelectAll          '---全ての図形を選択
     Set myShRange = Selection.ShapeRange  '---選択図形範囲を変数に格納
     With myShRange
         .Group                       '---グループ化
         .Top = Range("B2").Top       '---図形範囲の上端位置をB2の位置へ
         .Left = Range("B2").Left     '---図形範囲の左端位置をB2の位置へ
         .Ungroup                     '---グループ化解除
     End With

 End Sub


すべての図形を選択してグループ化してから図形の位置を設定し、その後グループ化を解除しています。


●ポイント●
元の位置を基準に上下左右へ図形を移動させるには、IncrementTop/IncrementLeftメソッドを使用します。また、ShapeオブジェクトのTopLeftCellプロパティで図形の左上端にあるセルを参照することができます。