excel vbaで画像の位置を取得する
目標
アクティブシート内の図形/画像の中心位置を座標(ピクセル単位)で取得する
やり方
状況
以下のようにシート内に図形や図が幾つか設置されており、その中心座標を取得することを考えます
コード
中心座標を直接取得することはできないので、左(上)の座標+幅(高さ)/2することで中心座標を取得します
Sub TopAndLeftSamp1() Dim Sh As Shape For Each Sh In ActiveSheet.Shapes '---アクティブシート全ての図形に対し Debug.Print Sh.Name & ":" & (Sh.Left + Sh.Width / 2) & "," & (Sh.Top + Sh.Height / 2) Next Sh End Sub
結果
Rectangle 1:118.125,87
Rectangle 2:346.125,226.5
Rectangle 3:204.375,243.75
Rectangle 4:437.625,96.75
Rectangle 5:475.875,374.25
Picture 7:597.3749,225.3749
結果は 図形名(英語) : x座標, y座標 の形式で出力されています。
図の正方形/長方形1は正方形/長方形2より右下にありますが、x, yともにRectangle2のほうがRectangle1より大きい値を示しているので問題なく取得できていそうです。