макрос в ворде - хелп

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
chuda
Сообщения: 5
Зарегистрирован: 03 мар 2008, 01:48

Здравствуйте - я с просьбой о помощи.
Задача, как мне кажется, не сложная, но с макросами ворда дела никогда не имела.
дано - текст, состоящий из строчек, где в каждой: число, слово, тире, предложение.
нужен макрос, который сделает: число, точка, слово болдом и с большлй буквы, остальное оставить, как есть. И таких страниц больше сотни - ручками нереально, помогите пожалуйста.

пример:
было: 1 слово - предложение из нескольких слов.
сиало:1. Слово - предложение из нескольких слов.

Спасибо заранее!))
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

попробуйте такой код,
но работать будет только для строк вида: "1 слово слово1 слово до конца строки"

Код: Выделить всё

Selection.HomeKey unit:=wdStory, Extend:=wdMove

    For i = 1 To ActiveDocument.ActiveWindow.Panes(1).Pages(1).Rectangles(1).Lines.Count
        Selection.HomeKey unit:=wdLine, Extend:=wdMove
        Selection.MoveRight unit:=wdWord, Count:=1
        Selection.MoveLeft unit:=wdCharacter, Count:=1
        Selection.TypeText Text:="."
        Selection.MoveRight unit:=wdCharacter, Count:=1
        Selection.Words.Last.Bold = True
        Selection.HomeKey unit:=wdLine, Extend:=wdMove
        Selection.MoveDown unit:=wdLine, Count:=1     
Next i
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

попробуйте такой код,
но работать будет только для строк вида: "1 слово слово1 слово до конца строки"

Код: Выделить всё

    Selection.HomeKey Unit:=wdStory, Extend:=wdMove

    For i = 1 To ActiveDocument.ActiveWindow.Panes(1).Pages(1).Rectangles(1).Lines.Count
        Selection.HomeKey Unit:=wdLine, Extend:=wdMove
        Selection.MoveRight Unit:=wdWord, Count:=1
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.TypeText Text:="."
        Selection.MoveRight Unit:=wdCharacter, Count:=1
                        
        Selection.Characters(1).Font.AllCaps = True
        
        Selection.Words.Last.Bold = True
        Selection.HomeKey Unit:=wdLine, Extend:=wdMove
        Selection.MoveDown Unit:=wdLine, Count:=1
    Next i
lilu
Сообщения: 5
Зарегистрирован: 28 фев 2008, 08:10

А не проще ли обработать поиском-замена?
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

&quot писал(а):А не проще ли обработать поиском-замена?
Не только проще но и значительно правильнее :)
chuda
Сообщения: 5
Зарегистрирован: 03 мар 2008, 01:48

Aent, lilu, я бы с удовольствием, но никогда не имела с этим дело и не могу найти: знак числа, слова, верхнего регистра буквы...вообщем, там тоже нужен своеобразный код - пыталась пойти этим путем...
chuda
Сообщения: 5
Зарегистрирован: 03 мар 2008, 01:48

airyashov, спасибо большое, попробую - когда есть пример кода, легче с ним играться))
chuda
Сообщения: 5
Зарегистрирован: 03 мар 2008, 01:48

airyashov, ура! работает!!!
а что можно почитать на эту тему, чтоб проникнуться поглубже или в инете где-то, книгу...? спасибо, еще раз!!!
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Я обычно пишу так, записываю макрос стандартным средством, а потом его редактирую, читая хелп.
chuda
Сообщения: 5
Зарегистрирован: 03 мар 2008, 01:48

airyashov, точно, отличная идея!)))
Ответить