IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   макрос на Visual Basic (https://www.imho.ws/showthread.php?t=20816)

kvvic 18.01.2003 04:19

макрос на Visual Basic
 
Помогите, пожалуйста, написать макрос для Word.
Мне нужно, чтобы макрос выполнял следующие действия:
если после курсора стоит знак абзаца - опуститься на одну строку вниз
если после курсора стоит любой другой символ жирным шрифтом - перейти в конец строки, сделать абзац, опуститься
на одну строку вниз
если после курсора стоит любой другой символ обычным шрифтом - перейти в начало строки, вставить два пробела,
перейти в конец строки, удалить символ перед курсором, сделать абзац.
Необходимо, чтобы макрос обработал таким образом весь документ.
Вот, что я написал:

Set myRange = ActiveDocument.Range(Start:=Selection.Start, _
End:=ActiveDocument.Content.End)
Do
Set char = Selection.Characters(1)
If char.Text = Chr$(13) Then
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdMove
ElseIf char.Bold = True Then
Selection.EndKey Unit:=wdLine, Extend:=wdMove
Selection.TypeParagraph
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdMove
ElseIf char.Bold = False Then
Selection.HomeKey Unit:=wdLine, Extend:=wdMove
Selection.TypeText Text:=" "
Selection.EndKey Unit:=wdLine, Extend:=wdMove
Selection.TypeBackspace
Selection.TypeParagraph
End If
Loop Until myRange.EndOf = True
End Sub

У меня не получается сделать цикл, чтобы макрос повторял эти действия до конца документа.

MAX67 25.01.2003 00:27

Предпоследняя строка у тебя какая-то неподходящая:
Loop Until myRange.EndOf = True
Мне кажется надо:
Loop Until myRange.End = False
Т. е. не метод EndOf, который возвращает смещение, а свойство конца диапазона.

Еще я подозреваю, что задача сформулированна не совсем удачно. По виду похоже, что тебе надо поправить некоторый список (например отсканированный словарь), так что бы каждый абзац начинался с вводного слова (полужирное начертание), а содержание абзаца выделялось отсупом. Если так, то эту задачу можно решить проще через глобальный поиск-замену, и макрос будет работать в разы быстрее.


Часовой пояс GMT +4, время: 14:24.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.