2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Создание макроса для Word
Сообщение13.01.2012, 11:41 


13/01/12
2
Здравствуйте! Задача состоит в следующем: есть какой-то текст, и в этом тексте некоторые слова нужно заменить на другие, например все слова "рыба" на слово "мясо", "огонь" на "вода", "град" на "снег" и т.д. Написать макрос для нескольких замен у меня получилось, а как поступать в том случае, если таких пар-замен, как, например, "огонь" - "вода", будет 100 или еще больше?? Нужно тогда наверное ввести какой-то словарь, для замены, где будут указаны эти пары слов. А как это сделать??

Вот код моего макроса:
Код:
Sub замена1()
'
' замена1 Макрос
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
.Text = "рыба"
.Replacement.Text = "мясо"
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "огонь"
.Replacement.Text = "вода"
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "снег"
.Replacement.Text = "град"
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll


End Sub


заранее спасибо!

 Профиль  
                  
 
 Re: Создание макроса для Word
Сообщение13.01.2012, 11:57 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
 i  Вы бы хоть смотрели, в какой раздел размещаете сообщение :evil:
Перенесено из математического в CS

 Профиль  
                  
 
 Re: Создание макроса для Word
Сообщение13.01.2012, 13:43 


26/08/11
2061
Пожалуйста With - End With напишите толко 1 раз - в начале и в конце кода.
Можете записать словарь в текстовой файл например, в каждой стоке 2 слова (что на чем заменить) разделитель в стоке, например Tab - chr(9)

Код:
Sub замена1()
dim S$, A
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
Open "Repl.txt" For Input As #1
While Not EOF(1)
  Line Input #1,S
  S=Trim(S) 'Не обязательно
  If Len(S)>3 then
   A=Split(S,Chr(9))
   If Ubound(A)>0 then
    ' Тут замена A(0) на А(1)
   End If
  End If
Wend
Close #1
End With
End Sub

 Профиль  
                  
 
 Re: Создание макроса для Word
Сообщение13.01.2012, 20:11 


13/01/12
2
Спасибо! Все получилось!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group