Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?

Автор Anton, 04 апреля 2017, 08:04

Anton

Как обратиться к надписи, если она расположена на полотне?

[вложение удалено администратором]

Администратор

Sub Макрос()
    Dim shape As shape
    ' Присваиваем надписи имя "shape". Эта надпись находится в первом полотне.
    Set shape = ActiveDocument.Shapes(1).CanvasItems(1)
End Sub

Anton

Я делаю так: выделяю надпись на полотне (щёлкаю по ней левой мышью) и хочу применить к этой надписи макрос. Но макрос работает не с надписью, а с полотном и происходит ошибка.
Как обратиться к выделенной надписи на полотне?

Администратор

Макрос работает с выделенной надписью (то есть юзер щёлкнул по надписи левой мышью).
Надпись может находиться как на полотне, так и вне полотна.

Макрос
Sub Макрос()
   
    Dim shape As shape
   
    ' Если рисунок находится не на полотне.
    If Selection.ShapeRange(1).Type <> msoCanvas Then
        ' Присваиваем имя "shape" рисунку.
        Set shape = Selection.ShapeRange(1)
    ' Если рисунок находится на полотне.
    Else
        ' Присваиваем имя "shape" рисунку.
        Set shape = Selection.ChildShapeRange(1)
    End If
   
    ' Действия с рисунком. Например, узнаём расстояние от верха страницы до верха рисунка.
        ' Результат выводится в View - Immediate Window.
    Debug.Print shape.Top
   
End Sub
[свернуть]