ツール→マクロ→VisualBasicEditor でVisualBasicEditorを開きます。
挿入→標準モジュール で標準モジュールを挿入し、以下のコードをコピーしてください。
A、エクセルのワークシートに、図形または"フォーム"のコマンドボタンのいずれかを描画してください。
描画したものを右クリックし、"マクロの登録”で、以下のマクロを選択。
B,エクセルのツールバーにユーザー設定のコマンドボタンを挿入し、以下のマクロを登録。(詳しくはヘルプをご覧ください。)
位置を知りたいオートシェイプを選択した後、上記AまたはBで、マクロを登録したものをクリックすると実行できます。
Sub 図形の位置()
If TypeName(Selection) <> "Range" Then
With Selection
MsgBox .Name & Chr(13) & Chr(13) & _
"Top " & Chr(9) & .Top & Chr(13) & _
"Left " & Chr(9) & .Left
End With
End If
End Sub
なお、上記のマクロの登録法はエクセル2002を基にしており、バージョンによって若干違うかもしれません。
また、"コントロールツールボックス”のコマンドボタンではうまく作動しません。
ボタンをつくって、以下のマクロを実行してみてください。
Private Type wSize
Name As String
Top As Long
Left As Long
Width As Long
End Type
Private Sub CommandButton1_Click()
Dim wShape As Object
Dim wSize() As wSize
Dim wShapeCnt As Long
For Each wShape In ActiveSheet.Shapes
If wShape.Type = msoAutoShape or wShape.Type = msoLine Then
ReDim Preserve wSize(wShapeCnt)
wSize(wShapeCnt).Name = wShape.Name
wSize(wShapeCnt).Top = wShape.Top
wSize(wShapeCnt).Left = wShape.Left
wSize(wShapeCnt).Width = wShape.Width
wShapeCnt = wShapeCnt + 1
End If
Next
End Sub
お礼
ありがとうございました。