2014 dxdy logo

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

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




 
 Создание макроса для Word
Сообщение13.01.2012, 11:41 
Здравствуйте! Задача состоит в следующем: есть какой-то текст, и в этом тексте некоторые слова нужно заменить на другие, например все слова "рыба" на слово "мясо", "огонь" на "вода", "град" на "снег" и т.д. Написать макрос для нескольких замен у меня получилось, а как поступать в том случае, если таких пар-замен, как, например, "огонь" - "вода", будет 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 
Аватара пользователя
 i  Вы бы хоть смотрели, в какой раздел размещаете сообщение :evil:
Перенесено из математического в CS

 
 
 
 Re: Создание макроса для Word
Сообщение13.01.2012, 13:43 
Пожалуйста 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 
Спасибо! Все получилось!

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group