1

Тема: Активизация надписи в фигуре без щелчка мышью

Будьте добры, мастера Word'a, подскажите, возможно ли при поиске следующего рисунка (точнее, фигуры с текстом) сразу же и активизировать его - этот рисунок - выделить что ли или направить на него фокус? Я не знаю, как правильно назвать это действие.
Допустим, имеется макрос:

Sub СледРисунок()
    Selection.GoTo What:=wdGoToGraphic, Which:=wdGoToNext
End Sub

После его выполнения курсор встанет в начало абзаца, к которому была первоначально привязана фигура.

Меня интересуют два варианта.
Первый вариант - для изменения свойств обтекания
1. Чтобы изменить свойства обтекания для этой фигуры надо по ней щелкнуть мышью, чтобы выделить.
А хотелось бы, чтобы она сразу после перехода к ней, сама выделилась.

Второй вариант - для редактирования текста в фигуре
2. Для редактирования текста в этой фигуре, надо щелкнуть мышью прямо в этом тексте.
Но очень хочется, чтобы после перехода к фигуре курсор встал в начале первого абзаца текста внутри фигуры.

2

Re: Активизация надписи в фигуре без щелчка мышью

auto-teacher пишет:

Будьте добры, мастера Word'a, подскажите, возможно ли при поиске следующего рисунка (точнее, фигуры с текстом) сразу же и активизировать его - этот рисунок - выделить что ли или направить на него фокус? Я не знаю, как правильно назвать это действие.
Допустим, имеется макрос:

Sub СледРисунок()
    Selection.GoTo What:=wdGoToGraphic, Which:=wdGoToNext
End Sub

После его выполнения курсор встанет в начало абзаца, к которому была первоначально привязана фигура.

Меня интересуют два варианта.
Первый вариант - для изменения свойств обтекания
1. Чтобы изменить свойства обтекания для этой фигуры надо по ней щелкнуть мышью, чтобы выделить.
А хотелось бы, чтобы она сразу после перехода к ней, сама выделилась.

Второй вариант - для редактирования текста в фигуре
2. Для редактирования текста в этой фигуре, надо щелкнуть мышью прямо в этом тексте.
Но очень хочется, чтобы после перехода к фигуре курсор встал в начале первого абзаца текста внутри фигуры.

Ваш документ.

3

Re: Активизация надписи в фигуре без щелчка мышью

auto-teacher пишет:

А хотелось бы, чтобы она сразу после перехода к ней, сама выделилась.

Если картинка не с обтеканием "в тексте"

Selection.Paragraphs(1).Range.ShapeRange(1).Select()

Если "в тексте":

Selection.Paragraphs(1).Range.InlineShapes(1).Select()
Лучше день потерять — потом за пять минут долететь!

4

Re: Активизация надписи в фигуре без щелчка мышью

Уважаемый viter.alex!
А в макрос-то показанный куда ваш код добавить, чтобы сразу после поиска рисунка выделить его?

Sub СледРисунок()
    Selection.GoTo What:=wdGoToGraphic, Which:=wdGoToNext
End Sub

Какой он должен быть?


Для Fck_This: сейчас пришлю фрагмент с надписями.

5

Re: Активизация надписи в фигуре без щелчка мышью

Здесь есть дос с маросами для поиска рисунков и сами надписи.

внешняя ссылка

Но не уверен, что правильно открыл доступ к своему Яндекс.Диску.

6

Re: Активизация надписи в фигуре без щелчка мышью

auto-teacher пишет:

сразу после поиска рисунка

Sub СледРисунок()
    Selection.GoTo What:=wdGoToGraphic, Which:=wdGoToNext
    Selection.Paragraphs(1).Range.ShapeRange(1).Select()
End Sub
Лучше день потерять — потом за пять минут долететь!

7

Re: Активизация надписи в фигуре без щелчка мышью

auto-teacher пишет:

Здесь есть дос с маросами для поиска рисунков и сами надписи.

внешняя ссылка

Но не уверен, что правильно открыл доступ к своему Яндекс.Диску.

Вам уже сведущий модератор подсказал как сделать.

Sub РИСунокСлед()
Dim iPar As Integer
' РИСунокСлед Макрос
    Selection.GoTo What:=wdGoToGraphic, Which:=wdGoToNext
    iPar = ActiveDocument.Range(1, Selection.End).Paragraphs.Count
    Selection.Paragraphs(iPar).Range.ShapeRange(1).Select
    SendKeys "{ENTER}"
End Sub

Этот код позволит редактировать код сразу после перехода к нему. Если не надо редактировать - удалите строку с "Сендкейс"

8

Re: Активизация надписи в фигуре без щелчка мышью

Мне, конечно, надо бы радоваться и на вас молиться, раз вообще отвечаете и советуете.
Но иногда кажется, что мы разговариваем на разных языках... Вобще я заметил, что после появления двух-трех ответов все забывают напрочь о чем была речь в первом вопросе.

Команды перехода к пред.-след. рисунку, входящие в мои показанные макросы,  действуют сами по себе независимо от того, какое у рисунка обтекание и что сделаешь с рисунком.
Нажал гор. клавиши - перешел; изменил рисунок или его обтекание. Нажал опять - перешел к следующему и сразу приступил к изменению свойств обтекания.

Другими словами:
• поиск может идти и вниз, и вверх;
• каждый найденный по ходу поиска рисунок должен выделиться (в этом случае на ленте сразу отобразятся свойства его обтекания, ЧТО МНЕ И НАДО);
• если надо, рисунок будет редактироваться;
• буду я редактировать рисунок или не буду - следующий поиск должен перекинуть меня к след. рисунку.
Как еще объяснить?

Если для этого требуется определить, какое обтекание применено к рисунку, значит, надо предварительно определить, какое оно.

В первом предложенном варианте код краснеет, и я, к сожалению, не пойму, почему:
Активизация надписи в фигуре без щелчка мышью
Второй находит только первый по ходу поиска рисунок, а потом при следующем поиске выдает ошибку:
Активизация надписи в фигуре без щелчка мышью

Где я туплю?

9

Re: Активизация надписи в фигуре без щелчка мышью

Тут есть несколько рисунков с разным обтеканием.
И макросы, вами предложенные.
Нету только моих удобных макросов из моего normal.dot.

внешняя ссылка

10

Re: Активизация надписи в фигуре без щелчка мышью

auto-teacher пишет:

Тут есть несколько рисунков с разным обтеканием.
И макросы, вами предложенные.
Нету только моих удобных макросов из моего normal.dot.

внешняя ссылка

Гражданин, прекратите панику - я уже оставил вам рабочий код, который осуществляет переход к рисунку, выделяет его и входит в него для редактирования текста.

З.Ы.: Не могу сказать, где вы тупите, но

Select()

выглядит подозрительно.