Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программно поменять значение в колонтитуле / 13 сообщений из 13, страница 1 из 1
11.08.2015, 08:42
    #39026754
Программно поменять значение в колонтитуле
Приветствую.

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

Прикладываю файл... поменять надо надпись 12/15-Вл-1-СП

Основную замену по документам делаю через
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub ProcessDocument(TargetDoc As Document, FindPhrase As String, ReplacePhrase As String)
  With TargetDoc.Content.Find
    .Text = FindPhrase
    .Execute FindText:=FindPhrase, ReplaceWith:=ReplacePhrase, Replace:=wdReplaceAll
  End With
End Sub



он не захватывает колонтитул, пробовал переключать View, переключает, но что бы сделать замену нужно получить фокус элемента надпись, как это сделать?
...
Рейтинг: 0 / 0
11.08.2015, 09:11
    #39026774
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Включи запись макроса, сделай требуемое руками, останови запись и изучи полученный код.
...
Рейтинг: 0 / 0
11.08.2015, 09:16
    #39026780
Программно поменять значение в колонтитуле
Akina, я когда включаю макрос, я не могу в колонтитуле выделить нужный объект, соответственно макрос не записывает нужное действие.
...
Рейтинг: 0 / 0
11.08.2015, 10:31
    #39026833
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Посмотрел я твой док. Плюнь ты на это дело... мало того, что эта твоя рамка сляпана из кучи отдельных надписей, так там ещё эти надписи дважды группированы. Пока ты до нужной надписи программно доберёшься - слезьми кровавыми умоешься...
...
Рейтинг: 0 / 0
12.08.2015, 10:48
    #39027615
Борис_Р
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Егор Коваленко, Проблему можно решить без макросов.
В приложенном файле постоянная часть номера проекта помещена в Content Control. При изменении текста в любом контроле в остальных контролах текст меняется автоматически (после изменения текста в контроле надо щелкнуть мышью в в тексте вне контрола и тогда будет виден результат).
Новый контрол с теми же свойствами можно вставить копированием существующего в новое место.

Для создания контролов использовалась надстройка Content Control Tools от Gregory K. Maxey

Описание Content Control и задачи, которые можно решать с их помощью см.:
http://gregmaxey.mvps.org/word_tip_pages/content_controls.html

Саму надстройку можно скачать отсюда:
http://gregmaxey.mvps.org/word_tip_pages/content_control_tools.html
...
Рейтинг: 0 / 0
25.08.2015, 19:54
    #39035946
Программно поменять значение в колонтитуле
Борис_Р, спасибо за совет! Полезная штука!
...
Рейтинг: 0 / 0
26.08.2015, 05:06
    #39036043
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Борис_Р, здравствуйте, Вы рекламируете сей продукт и это здорово
...
Рейтинг: 0 / 0
26.08.2015, 05:07
    #39036044
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Борис_Р,
я на английском не читатель
...
Рейтинг: 0 / 0
26.08.2015, 05:10
    #39036046
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Борис_Р,
скажите я правильно понял, это работает начиная с Ворд2007?
событие перед удалением насколько я знаю отрабатывается
скажите пожалуйста событие после добавления в документ обрабатывается?
можете дать код примера? спасибо
...
Рейтинг: 0 / 0
27.08.2015, 10:44
    #39037256
Борис_Р
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
катастрофаскажите я правильно понял, это работает начиная с Ворд2007?
событие перед удалением насколько я знаю отрабатывается
скажите пожалуйста событие после добавления в документ обрабатывается?
можете дать код примера? спасибо
1. Да, ContentControls появились в объектной модели Ворд начиная с Ворд 2007. В более ранних версиях они отсутствуют.

2. Пример кода обработки события при добавлении нового контрола:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Document_ContentControlAfterAdd(ByVal NewContentControl As ContentControl, ByVal InUndoRedo As Boolean)
    MsgBox "В документ вставлен ContentControl типа " & NewContentControl.Type & _
    vbCr & "ID контрола " & NewContentControl.ID & vbCr & "Значение InUndoRedo " & InUndoRedo
    If NewContentControl.Type = wdContentControlText Or NewContentControl.Type = wdContentControlRichText Then
       NewContentControl.Range.Text = "ID контрола " & NewContentControl.ID
    End If
End Sub


катастрофа, все еще мучают "Поля, следящие друг за другом"?
...
Рейтинг: 0 / 0
27.08.2015, 12:12
    #39037323
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Борис_Р, спасибо за ответ....
...
Рейтинг: 0 / 0
28.08.2015, 19:44
    #39038844
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
Борис_Р,
>катастрофа, все еще мучают "Поля, следящие друг за другом"?
конечно-один осадок остался, как бы обсчитать?
когда стоит этот контрол и правее его стоит абзац и если ткнуть в абзац, а не в контрол, то происходит событие - клик по контролу, а надо обрабатывать когда точно на него ткнут, как?
...
Рейтинг: 0 / 0
29.08.2015, 11:11
    #39039080
Борис_Р
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно поменять значение в колонтитуле
катастрофа, по моему вставка после контрола хотя бы одного пробела перед знаком абзаца может решить эту проблему.

P.S. Давайте не будем устраивать из темы помойку. Ведь наш с вами междусобойчик очень далеко от вопроса топикстартера.


Модератор: Борис, спасибо, я не заметил, что это чужая тема, Эндрю - предупреждение!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программно поменять значение в колонтитуле / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]