Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/WORD ВБА как выделить часть текста в Shape.Textbox? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » WORD ВБА как выделить часть текста в Shape.Textbox? (Возможно ли выделить заданный участок текста в об-те Shape?)
WORD ВБА как выделить часть текста в Shape.Textbox?
Roman777 Дата: Суббота, 03.12.2016, 23:40 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Добрый всем вечер! Создал программно Shapes.AddTextBox... вручную в нём могу выделять диапазон, как хочу. Программного решения этого действия я не нашёл. Максимум до чего дошёл - выделение произвольного символа, но не диапазона.
[vba]
Код
ActiveDocument.Shapes(1).TextFrame.TextRange.Characters(3).select
[/vba]
возможно ли?
Мне необходимо в определённых участках текста задать необходимое форматирование (разное).
К сообщению приложен файл: 4434074.docx (15.7 Kb)


Много чего не знаю!!!!
 
Ответить
СообщениеДобрый всем вечер! Создал программно Shapes.AddTextBox... вручную в нём могу выделять диапазон, как хочу. Программного решения этого действия я не нашёл. Максимум до чего дошёл - выделение произвольного символа, но не диапазона.
[vba]
Код
ActiveDocument.Shapes(1).TextFrame.TextRange.Characters(3).select
[/vba]
возможно ли?
Мне необходимо в определённых участках текста задать необходимое форматирование (разное).

Автор - Roman777
Дата добавления - 03.12.2016 в 23:40
krosav4ig Дата: Воскресенье, 04.12.2016, 02:04 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Как-то так можно
[vba]
Код
Sub d()
    Dim start&, count&
    start = 3: count = 5
    Dim rng As Range
    With ActiveDocument.Shapes(1).TextFrame.TextRange
        Set rng = .Characters(start)
        rng.End = .Characters(start + count).End
        rng.Select
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
Как-то так можно
[vba]
Код
Sub d()
    Dim start&, count&
    start = 3: count = 5
    Dim rng As Range
    With ActiveDocument.Shapes(1).TextFrame.TextRange
        Set rng = .Characters(start)
        rng.End = .Characters(start + count).End
        rng.Select
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 04.12.2016 в 02:04
Roman777 Дата: Воскресенье, 04.12.2016, 10:05 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
krosav4ig, Спасибо большое! макрос работает. rng у меня отображается как range. Я вчера часа 3 изучал деревья свойств объектов и их функции в мануале смотрел - не увидел там таких range. Что же это за невидимый объект,который не отображается у объекта:
[vba]
Код
Set o = ActiveDocument.Shapes(1).TextFrame.TextRange.Characters
[/vba]
в окошке Locals. Я так понимаю, это объекты First и Last являются составляющими этого объекта Range, благодаря которому мы можем выполнить такое выделение?


Много чего не знаю!!!!
 
Ответить
Сообщениеkrosav4ig, Спасибо большое! макрос работает. rng у меня отображается как range. Я вчера часа 3 изучал деревья свойств объектов и их функции в мануале смотрел - не увидел там таких range. Что же это за невидимый объект,который не отображается у объекта:
[vba]
Код
Set o = ActiveDocument.Shapes(1).TextFrame.TextRange.Characters
[/vba]
в окошке Locals. Я так понимаю, это объекты First и Last являются составляющими этого объекта Range, благодаря которому мы можем выполнить такое выделение?

Автор - Roman777
Дата добавления - 04.12.2016 в 10:05
krosav4ig Дата: Воскресенье, 04.12.2016, 15:01 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а если через Object Browser?
в VBE жмем F2, в поле поиска пишем TextRange, жмем Enter, выбираем строку из результатов поиска, соответствующую классу предка (столбец Class, в нашем случае TextFrame)

Видим внизу
Цитата
Property TextRange As Range
read-only
Member of
Word.TextFrame
=> объект TextRange это экземпляр класса Range
тыкаем внизу по зелененькому Range, выбираем справа (Members of 'Range') Characters
Видим внизу
Цитата
Property Characters As Characters
read-only
Member of
Word.Range

тыкаем внизу по зелененькому Characters, выбираем справа (Members of 'Characters') Item
Видим внизу
Цитата
Function Item(Index As Long) As Range
Default member of
Word.Characters

Обращаем внимание на
Цитата
Default
=> Characters(i) = Characters.Item(i)
и на класс возвращаемого объекта
Цитата
As Range
=> Characters(i) это экземпляр класса Range
К сообщению приложен файл: 5446907.gif (44.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 04.12.2016, 15:14
 
Ответить
Сообщениеа если через Object Browser?
в VBE жмем F2, в поле поиска пишем TextRange, жмем Enter, выбираем строку из результатов поиска, соответствующую классу предка (столбец Class, в нашем случае TextFrame)

Видим внизу
Цитата
Property TextRange As Range
read-only
Member of
Word.TextFrame
=> объект TextRange это экземпляр класса Range
тыкаем внизу по зелененькому Range, выбираем справа (Members of 'Range') Characters
Видим внизу
Цитата
Property Characters As Characters
read-only
Member of
Word.Range

тыкаем внизу по зелененькому Characters, выбираем справа (Members of 'Characters') Item
Видим внизу
Цитата
Function Item(Index As Long) As Range
Default member of
Word.Characters

Обращаем внимание на
Цитата
Default
=> Characters(i) = Characters.Item(i)
и на класс возвращаемого объекта
Цитата
As Range
=> Characters(i) это экземпляр класса Range

Автор - krosav4ig
Дата добавления - 04.12.2016 в 15:01
Roman777 Дата: Воскресенье, 04.12.2016, 22:06 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
krosav4ig, ого! спасибо ещё раз за такие подробные разъяснения. Вродебы уже не первый день юзаю ВБА, но про окошко Object Browser ни слухом ни духом. Всё по дереву в Locals изучал... а тут вот оно гораздо подробнее развёрнуто и даже в mdsn не нужно лезть...=)


Много чего не знаю!!!!
 
Ответить
Сообщениеkrosav4ig, ого! спасибо ещё раз за такие подробные разъяснения. Вродебы уже не первый день юзаю ВБА, но про окошко Object Browser ни слухом ни духом. Всё по дереву в Locals изучал... а тут вот оно гораздо подробнее развёрнуто и даже в mdsn не нужно лезть...=)

Автор - Roman777
Дата добавления - 04.12.2016 в 22:06
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » WORD ВБА как выделить часть текста в Shape.Textbox? (Возможно ли выделить заданный участок текста в об-те Shape?)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!