MS-Word Macro - заменить - подтвердить после работы - PullRequest
0 голосов
/ 26 января 2019

Я не инженер, и я не ИТ-работник. Но я ... спортивный журналист.

Я пишу много статей на дороге. Я использую для этого Google Voice. Но у нас есть одна проблема с польским языком в Google Voice. Он не ... конвертирует знаки препинания.

Я создал Макрос в Microsoft Word. Но это не 100% к моему удовлетворению. У меня проблема с подтверждением изменений после всей работы.

После использования моего макроса, мне нужно нажать кнопку «ДА» после его работы. MS-Word спрашивает меня: «MS-Word завершил поиск выделенного текста. Количество изменений: 0/1/2 и т. Д. Должен ли я искать остальную часть документа?».

У меня есть 11 замен в макросе, и каждое нужное мне слово нажимаем YES ... 11 раз (даже если оно заменяет 0 раз):)

Я прикрепил свой макрос, возможно, кто-то из вашего сообщества может помочь и изменить мою идею. Большое спасибо, наилучшие пожелания.

Sub GoogleVoice()
'
' GoogleVoice Makro
'
'
    Selection.WholeStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = " przecinek"
        .Replacement.Text = ","
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " kropka"
        .Replacement.Text = "."
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " dwukropek"
        .Replacement.Text = ":"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "myślnik"
        .Replacement.Text = "-"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " znak zapytania"
        .Replacement.Text = "?"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " wykrzyknik"
        .Replacement.Text = "!"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " cudzysłów"
        .Replacement.Text = """"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " zamknij nawias"
        .Replacement.Text = ")"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
      Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "trzykropek"
        .Replacement.Text = "..."
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = " nawias "
        .Replacement.Text = "("
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = " enter"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

1 Ответ

0 голосов
/ 27 января 2019

Подсказки вызваны wdFindAsk. Ваш код также может быть значительно упрощен. Попробуйте:

Sub GoogleVoice()
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchWildcards = False
  .MatchSoundsLike = False
  .MatchAllWordForms = False
  .Text = " przecinek"
  .Replacement.Text = ","
  .Execute Replace:=wdReplaceAll
  .Text = " kropka"
  .Replacement.Text = "."
  .Execute Replace:=wdReplaceAll
  .Text = " dwukropek"
  .Replacement.Text = ":"
  .Execute Replace:=wdReplaceAll
  .Text = "myslnik"
  .Replacement.Text = "-"
  .Execute Replace:=wdReplaceAll
  .Text = " znak zapytania"
  .Replacement.Text = "?"
  .Execute Replace:=wdReplaceAll
  .Text = " wykrzyknik"
  .Replacement.Text = "!"
  .Execute Replace:=wdReplaceAll
  .Text = " cudzysłów"
  .Replacement.Text = """"
  .Execute Replace:=wdReplaceAll
  .Text = " zamknij nawias"
  .Replacement.Text = ")"
  .Execute Replace:=wdReplaceAll
  .Text = "trzykropek"
  .Replacement.Text = "..."
  .Execute Replace:=wdReplaceAll
  .Text = " nawias "
  .Replacement.Text = "("
  .Execute Replace:=wdReplaceAll
  .Text = " enter"
  .Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
...