Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [msword] Замена слова в прямоугольнике 
:(
    Опции темы
admsasha
Дата 29.9.2006, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6




Вот код замены.
Код

     DocWord.Application.Selection.Find.ClearFormatting
      DocWord.Application.Selection.Find.Replacement.ClearFormatting
      With DocWord.Application.Selection.Find
           .text = "lalala": .Replacement.text = "blabla"
           .Forward = True: .Wrap = wdFindContinue: .Format = False
           .MatchCase = False: .MatchWholeWord = False: .MatchWildcards = False
           .MatchSoundsLike = False: .MatchAllWordForms = False
      End With
      DocWord.Application.Selection.Find.Execute Replace:=wdReplaceAll


Если в DOC документе стоит слово lalala то все отлично заменяется, но если слово находиться в прямоугольнике, то замены не происходит.

Пробывал из самого msword замена происходит везде и в прямоугольнике и вне его. 


Что в этом коде нужно поменять что бы в прямоугольнике тоже заменялся текст ?


Прямоугольник - это элемент рисования, который в "панель рисования" находится.

P.S. использую office 2003

PM MAIL WWW ICQ Jabber   Вверх
Тутанхамец
Дата 29.9.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: нет
Всего: 6



Если прямоугольник - это инструмент "Надпись", то у документа должна быть коллекция "Надписей", находящихся в документе. Перебираешь их все, и в них ищешь. Имхо.
PM MAIL   Вверх
admsasha
Дата 29.9.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Тутанхамец @  29.9.2006,  18:27 Найти цитируемый пост)
Если прямоугольник - это инструмент "Надпись", то у документа должна быть коллекция "Надписей", находящихся в документе. Перебираешь их все, и в них ищешь. Имхо. 


Прямоугольник - это он так в word и называется "прямоугольник", если идти по панели то:

"Рисование","выбор объекта","автофигуры","линия","стрелка","ПРЯМОУГОЛЬНИК"....

текст пишется с помощью "Добавить текст".
PM MAIL WWW ICQ Jabber   Вверх
likhobory
Дата 30.9.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



копай здесь...
Код

ActiveDocument.Shapes(MyRectangle).TextFrame.TextRange.Text = "MyText"



--------------------
PM MAIL   Вверх
likhobory
Дата 30.9.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



да, еще:
Цитата(admsasha @  29.9.2006,  08:42 Найти цитируемый пост)
Вот код замены.

 почему бы не поместить весь код внутрь конструкции With...,
символом разделения операторов советую не злоупотреблять  - код будет гораздо симпатишшнее, значения по дефолту можно совсем убрать  smile 



--------------------
PM MAIL   Вверх
admsasha
Дата 1.10.2006, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(likhobory @  30.9.2006,  17:14 Найти цитируемый пост)
копай здесь...

код Visual Basic
ActiveDocument.Shapes(MyRectangle).TextFrame.TextRange.Text = "MyText"


А где им (прямоугольникам), названия давать ? что-то не нашел  smile 



Цитата(likhobory @  30.9.2006,  17:48 Найти цитируемый пост)
 почему бы не поместить весь код внутрь конструкции With...,
символом разделения операторов советую не злоупотреблять  - код будет гораздо симпатишшнее, значения по дефолту можно совсем убрать   

Это код сгенерированный самим office, я только его в VB поставил и даже не заметил как он стоит по отношению к with... поправлю :-D
PM MAIL WWW ICQ Jabber   Вверх
Cyric
Дата 2.10.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 27.4.2006
Где: Россия, г. Казань .

Репутация: 3
Всего: 3



Цитата(admsasha @  1.10.2006,  03:11 Найти цитируемый пост)
А где им (прямоугольникам), названия давать ? что-то не нашел   

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

for each shape in ActiveDocument.Shapes
     if shape.type =msoShapeRectangle Then
          if shape.TextFrame.TextRange.Text = "lalala" then shape.TextFrame.TextRange.Text = "blablabla"
          end if
     next


PM MAIL ICQ   Вверх
admsasha
Дата 3.10.2006, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Cyric @  3.10.2006,  02:10 Найти цитируемый пост)
for each shape in ActiveDocument.Shapes
     if shape.type =msoShapeRectangle Then
          if shape.TextFrame.TextRange.Text = "lalala" then shape.TextFrame.TextRange.Text = "blablabla"
          end if
     next


Теперь тоже самое только на VB  smile

Добавлено @ 04:50 
Цитата(Aloha @  1.10.2006,  14:03 Найти цитируемый пост)
admsasha

В прикрепленном файле вариант решения 


Менять надо из VB...  а с самого offce заменяется текст даже моим кодом...
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.