Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 04 апреля 2017, 08:04

Название: Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?
Отправлено: Anton от 04 апреля 2017, 08:04
Как обратиться к надписи, если она расположена на полотне?

[вложение удалено администратором]
Название: Re: Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?
Отправлено: Администратор от 04 апреля 2017, 08:40
Sub Макрос()
    Dim shape As shape
    ' Присваиваем надписи имя "shape". Эта надпись находится в первом полотне.
    Set shape = ActiveDocument.Shapes(1).CanvasItems(1)
End Sub
Название: Re: Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?
Отправлено: Anton от 04 апреля 2017, 08:48
Я делаю так: выделяю надпись на полотне (щёлкаю по ней левой мышью) и хочу применить к этой надписи макрос. Но макрос работает не с надписью, а с полотном и происходит ошибка.
Как обратиться к выделенной надписи на полотне?
Название: Re: Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?
Отправлено: Администратор от 04 апреля 2017, 09:30
Макрос работает с выделенной надписью (то есть юзер щёлкнул по надписи левой мышью).
Надпись может находиться как на полотне, так и вне полотна.

Макрос
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
[свернуть]
Название: Re: Word VBA Макросы: Как обратиться к надписи, если она расположена на полотне?
Отправлено: Anton от 04 апреля 2017, 09:34
Большое спасибо!