1

Тема: Макрос. Полужирный текст оформить в <b>текст</b>

Добрый день!
Столкнулся с задачей, когда во всем Word-документе необходимо текст, оформленный полужирным, заменить на [ b] текст [ /b].

Подскажите как быть?

2

Re: Макрос. Полужирный текст оформить в <b>текст</b>

Мне кажется, это можно сделать с помощью шаблона подстановочных знаков. Нужно только подобрать соответствующий шаблон.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: Макрос. Полужирный текст оформить в <b>текст</b>

мне тоже так казалось, но вряд ли можно решить с помощью шаблона подстановочных знаков
Вот сам макрос какой родил

Sub FormatSelection()

    Selection.Find.ClearFormatting
    Selection.Find.Font.Bold = True
    Selection.Find.Replacement.ClearFormatting
  Selection.HomeKey (wdStory)
  Do While Selection.Find.Execute(FindText:="", Forward:=True)
    With Selection
      .Text = "<b>" & Selection.Text & "</b>"
    End With
  Loop
End Sub

4

Re: Макрос. Полужирный текст оформить в <b>текст</b>

Akademia_Excel пишет:

мне тоже так казалось, но вряд ли можно решить с помощью шаблона подстановочных знаков
Вот сам макрос какой родил

Sub FormatSelection()

    Selection.Find.ClearFormatting
    Selection.Find.Font.Bold = True
    Selection.Find.Replacement.ClearFormatting
  Selection.HomeKey (wdStory)
  Do While Selection.Find.Execute(FindText:="", Forward:=True)
    With Selection
      .Text = "<b>" & Selection.Text & "</b>"
    End With
  Loop
End Sub

Писать на одну строку With Selection - не рационально. Вы уменьшили код на одно слово и добавили 4. И HomeKey писать не обязательно. Если хотите с with то лучше так:

Sub FormatSelection()
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Font.Bold = True
    .Wrap = wdFindContinue
  Do While .Execute(FindText:="", Forward:=True) = True
    .Parent.Font.Bold = wdToggle
    .Parent.Range.Text = "<b>" & Selection.Text & "</b>"
  Loop
End With
End Sub

Макрос уберёт полужирный, а если вам надо оставить выделение, то уберите строку "    .Parent.Font.Bold = wdToggle" и добавьте перед Loop такие строки

.Execute
    .Parent.Collapse Direction:=wdCollapseEnd
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

5

Re: Макрос. Полужирный текст оформить в <b>текст</b>

Akademia_Excel пишет:

мне тоже так казалось, но вряд ли можно решить с помощью шаблона подстановочных знаков
Вот сам макрос какой родил

Sub FormatSelection()

    Selection.Find.ClearFormatting
    Selection.Find.Font.Bold = True
    Selection.Find.Replacement.ClearFormatting
  Selection.HomeKey (wdStory)
  Do While Selection.Find.Execute(FindText:="", Forward:=True)
    With Selection
      .Text = "<b>" & Selection.Text & "</b>"
    End With
  Loop
End Sub

Хороший макрос!
Только лучше добавить еще очистку параметров поиска:

Sub FormatSelection()
  Selection.find.ClearFormatting
  Selection.find.Font.Bold = True
  Selection.find.Replacement.ClearFormatting
  Selection.HomeKey (wdStory)
  Do While Selection.find.Execute(FindText:="", Forward:=True)
    With Selection
      .Text = "<b>" & Selection.Text & "</b>"
    End With
  Loop
  Selection.find.ClearFormatting
  Selection.find.Replacement.ClearFormatting
End Sub

Также данный макрос, к сожалению, "ломает" автоматический поиск в области навигации (CTRL+F).
Как его "починить" - я, увы, не знаю.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.