1

Тема: Как записать в переменную range слово под курсивом

Здравствуйте!
Задача:
1. Ищется слово/часть слова по определенному признаку. (например, форматирование курсив-полужирный)
2. Нужно записать в переменную типа range слово на которое попал курсор.
Делаю так:

With Selection.Find
    .Font.Bold = True
    .Font.Italic = True
    .Text = ""
    .Execute

Скажем, нашлось: Красивое чучело
что делать далее:
   

If .Found Then
        Set rngWord = Selection.Words.First  - возвращает меня к началу текстового куска - "Красивое"
    End If
End With

В общем заклинило. Заранее спасибо.

Модератор:
Пользуйтесь тегом [сode][/сode] для оформления кода

Отредактировано Денис (18.02.2010 21:42:17)

2

Re: Как записать в переменную range слово под курсивом

Значит, в слове "красивое", тоже есть символы, оформленные таким же образом. Перед присваиванием поставьте строку:

    If .Found Then
        MsgBox(Selection.Text)
        Set rngWord = Selection.Words.First  - возвращает меня к началу текстового куска - "Красивое"
    End If

чтобы посмотреть, какое выражение нашлось.
В остальном всё правильно.

Лучше день потерять — потом за пять минут долететь!

3

Re: Как записать в переменную range слово под курсивом

viter.alex пишет:

Значит, в слове "красивое"

Прошу прощения, неточно выразил мысль: мне как раз не нужно переходить на слово "красивое", мне нужно запомнить слово "чучело". "Чучело" было найдено поиском, вернее часть его, выделенная курсивом и полужирным, а мне нужно занести в переменную это слово целиком. Я рассуждал так: объект Selection начинается там, где начинается выделение, - но в моем случае он начинается в начале предложения...

4

Re: Как записать в переменную range слово под курсивом

Денис пишет:

но в моем случае он начинается в начале предложения...

Вот об этом я и говорю. Почему он начинается в начале предложения? Нужно разобраться.
Создайте новый файл, введите в него два слова Красивое чучело и запустите макрос. Должен отработать правильно. Если не получится, то приложите файл, в котором не получается.

Лучше день потерять — потом за пять минут долететь!

5

Re: Как записать в переменную range слово под курсивом

viter.alex пишет:

Вот об этом я и говорю. Почему он начинается в начале предложения? Нужно разобраться.

Мистика! Сегодня все корректно работает на том же материале. Видимо, ворд нужно периодически перезапускать после работы VBA. Однозначно где-то накапливаются ошибки. Спасибо.