Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2011, 11:57   #1
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию Замена текста в объекте Word shape.TextFrame.TextRange.Text

Здравствуйте!
Помогите с заменой текста в объекте надпись shape
Привожу пример кода:
Код:
For Each sec In oBook.Sections

                        For Each kolontitul In sec.Headers            'верхний колонтитул

                            For Each shp In kolontitul.Shapes

                                If shp.TextFrame.HasText = True Then
                                    Dim str As String = shp.TextFrame.TextRange.Text
                                    'Find text to replace
                                    If str.Contains(strWhat) Then
                                        'Replace exisitng text with the new text
                                        Dim idx As Integer = str.IndexOf(strWhat)
                                        Dim strStartText As String = str.Substring(0, idx)
                                        Dim strEndText As String = str.Substring(idx + strWhat.Length, str.Length - 1 - (idx + strWhat.Length - 1))
                                        shp.TextFrame.TextRange.Text = strStartText & strReplace & strEndText

                                        'If TypeOf shp Is TableLayoutPanel Then
                                        'Dim tfTbl As Microsoft.Office.Interop.Word.TextFrame

                                        'Dim tbl As Microsoft.Office.Interop.Word.Table


                                        'strNew

                                    End If

                                End If

                            Next shp
                        Next
Также не работает метод .Find.
Помогите кто сталкивался с этой проблемой. Я копаюсь уже неделю. Спасибо заранее.
DolgopolovaOlga вне форума Ответить с цитированием
Старый 08.11.2011, 13:36   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Код:
Sub w111108_1308()
'в колонтитул вставила фигуру с текстом 1gggg
w111108_1308w "1", "2"
w111108_1308w "ggg", "www"
End Sub
Sub w111108_1308w(zstrWhat As String, zstrReplace As String)
'все объявления начала с z-буквы, чтобы СЛУЧАЙНО не попасть на зарезервированное слово
'-------ваш синтаксис операторов --явно не WORD-VBA------------
'''''''''гадать не стала---------------------------------------
Dim zsec As Section
Dim zobook As Document
Dim zkolontitul
Set zobook = Word.ActiveDocument
Dim zshp As Shape
Dim zstr As String, zstr2
Dim zidx As Integer
Dim zstrStartText As String
Dim zstrEndText As String


For Each zsec In zobook.Sections

For Each zkolontitul In zsec.Headers            'верхний колонтитул

For Each zshp In zkolontitul.Shapes

If zshp.TextFrame.HasText = True Then

zstr = "" & zshp.TextFrame.TextRange.Text
'Find text to replace

zidx = InStr(1, zstr, zstrWhat)
If zidx > 0 Then
'Replace exisitng text with the new text


zstrStartText = Mid(zstr, 1, zidx - 1)

zstrEndText = Mid(zstr, zidx + Len(zstrWhat))
zstr2 = zstrStartText & zstrReplace & zstrEndText
zshp.TextFrame.TextRange.Text = zstr2

'If TypeOf shp Is TableLayoutPanel Then
'Dim tfTbl As Microsoft.Office.Interop.Word.TextFrame

'Dim tbl As Microsoft.Office.Interop.Word.Table


'strNew

End If

End If

Next zshp
Next zkolontitul
Next zsec

End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 08.11.2011, 13:50   #3
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию

я уже так пробовала.
DolgopolovaOlga вне форума Ответить с цитированием
Старый 08.11.2011, 14:06   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Цитата:
Сообщение от DolgopolovaOlga Посмотреть сообщение
я уже так пробовала.
у меня все корректно отработало

Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 08.11.2011 в 14:12.
shanemac51 вне форума Ответить с цитированием
Старый 08.11.2011, 14:10   #5
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию

а у тебя надпись имеет другие элементы не текстовые?
DolgopolovaOlga вне форума Ответить с цитированием
Старый 08.11.2011, 14:17   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Цитата:
Сообщение от DolgopolovaOlga Посмотреть сообщение
а у тебя надпись имеет другие элементы не текстовые?
я вставила автофигуры прямоугольник и стрелки-линии
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 08.11.2011, 14:19   #7
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию

ты пишешь код в VS 2010?
DolgopolovaOlga вне форума Ответить с цитированием
Старый 08.11.2011, 14:20   #8
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию

выложить свой пример редактируемого файла?
DolgopolovaOlga вне форума Ответить с цитированием
Старый 08.11.2011, 14:26   #9
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Цитата:
Сообщение от DolgopolovaOlga Посмотреть сообщение
выложить свой пример редактируемого файла?
мой или ваш

word-vba-2007
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 08.11.2011, 14:31   #10
DolgopolovaOlga
 
Регистрация: 27.09.2011
Сообщений: 8
По умолчанию

а я пишу на VB.net внешнее приложение
DolgopolovaOlga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена текста в Word Mermaid Помощь студентам 0 10.05.2011 16:50
Поиск и замена текста в надписях Word shakycucumber Общие вопросы Delphi 2 19.04.2011 02:18
C#, работа с Shape в Word Evgeniy1989 Общие вопросы .NET 0 30.07.2010 07:17
Pascal цикл с Shape.Left and Shape.Top BanzoO Помощь студентам 1 13.12.2009 21:47