Раздел: Помогите!

В блог Подписаться на Дзен!

Отвечать в конференциях и заводить новые темы может любой участник, независимо от наличия регистрации на сайте 7я.ру.

Макросы в ворде. Нужен цикличный макрос.

Подскажите - как написать? В Ворде, для форматирования большого куска текста макросом, надо, чтобы внутри большого макроса работали еще пара "поменьше"... то есть сделать цикл. Цикл - от начала до конца файла (EOF). Кто-нибудь знает?
06.12.2005 11:20:41,

15 комментариев

От кого: Настройки

Вы не авторизованы.

Если Вы отправите сообщение анонимно, то потеряете возможность редактировать и удалить это сообщение после отправки.

E-mail:
получать ответы на E-mail
показывать ссылки на изображения в виде картинок
Syntax

Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop

Or, you can use this syntax:

Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]

One or more statements that are repeated while, or until, condition is True.

06.12.2005 14:42:47, 43684
СПАСИБО!!! получилось все :)))) 08.12.2005 18:24:18, Amencia
пасиб! полезла разбираться )) 06.12.2005 14:51:35, Amencia
grumbler
Вызов функции из основной программы.
Вообще непонятно "форматирование большого куска" - насколько большого и в чем суть форматирования - прописать стили или убить двойные пробелы. :)
06.12.2005 13:57:20, grumbler
Там подборка статей. После форматирования шрифта, размера, убирания двойных пробелов, абзацев и лишних выражений необходимо до конца текста в каждой статье переставить первую строку на абзац ниже (то есть последовательность действий - выделить, вырезать, на абзац вниз, вставить) - от начала до конца файла; затем выделить первую строку каждой статьи (заголовок) bold. Между статьями два абзаца, ориентируюсь на них. На этом все заканчивается :)
Пока получается все это провернуть тремя макросами. Но знаю, что есть циклы. А писать их пока не умею....
06.12.2005 14:02:13, Amencia
grumbler
Думаю, что помочь не смогу, да и нужно оно Вам, если уже тремя макросами все задачи решаются? НО....
Теперь и мне становится интересно - как можно изменить начертание только первой строки абзаца на полужирное? И зачем вырезать/вставлять абзац ниже, а не проще поменять отбивку абзаца сверху?
06.12.2005 14:13:11, grumbler
:((
Я не совсем точно выразилась - полужирным не первую строку абзаца, а первый абзац... Заголовок статьи...)
Вырезать-вставить абзац - потому как в изначальном формате (из источника) абзац "X" стоит в самом начале статьи. По утвержденному формату он должен находиться после заголовка статьи. не перетаскивать же его ручками 100-150 раз :)))
А хочется сделать это все одним макросом, чтобы не ражимать на кнопочки 1+1хN+1хN количество раз, а только 1... )))
Ну и на будущее - чувствую, что потребуются они (циклы) мне еще не раз. Я почитала про цикличные макросы, но, к сожалению, там не было алгоритма действий.
Спасибо!
06.12.2005 14:21:00, Amencia
grumbler
:((((( почитайте про sub function call в хелпах - может разрешит Вашу проблему (вызовы процедур), у меня, правда остается стойкое ощущение именно того, что "цикличность" зациклится если не указывать предел (сколько раз), который в свою очередь зависит от количества статей в подборке и всякий раз неодинаков?
Так что если Вы вставите процедуру цикла (from to) получается, что второе число либо вводится вручную, либо считается другим макросом.
Мне кажется, что либоя недостаточно понимаю исходник, либо Вы не совсем правильно описываете себе алгоритм действий....
06.12.2005 14:36:12, grumbler
ага... попробую почитать... Может, я что-то не совсем верно представляю (как оно должно быть...) Все, с кем я тут у себя советовалась, сами не знают точно, но говорят, что такое есть и оно применимо :)
В принципе, в циклах есть варианты - цикл повторяется определенное количество раз; цикл повторяется до конца файла (end of file - EOF). И еще какой-то, моему пониманию недоступен совершенно...
В крайнем случае можно в самом начале ставить некий символ и потом этот символ принимать как стоп-знак.
Читала тут:
http://www.helloworld.ru/texts/comp/lang/vbasic/menu/vbhelp_051.html#_351
http://www.helloworld.ru/texts/comp/lang/vbasic/menu/vbhelp_051.html#_352
06.12.2005 14:45:37, Amencia
grumbler
Если честно, то я бы все статейки сделал бы ручками - 100 штук - не такое фатальное количество, а если есть возможность впихнуть их в столбцам в эксель (автоматическая разбивка параграфов в разные ячейки происходит при вставке), то задача становится тривиальной.
Если найдете ответ/алгоритм - поделИтесь, а? :)))
06.12.2005 15:16:04, grumbler
Если разберусь в этом деле - обязательно :)))
ммм... по 100 - 500 статей, да каждый день, да ручками... имхо, это просто не стоит моего времени :) Лучше я это время посижу и макрос помучаю - интеллектуально более приятно :)
С экселем - это хорошо :) с вордом-экселем я макросы для себя пишу, если нужен подсчет. Но итог данного задания должен быть в ворде, поэтому надо было б открывать пустой эксель рядом с вордом, и писать макрос с обращением к экселю.
А мне потом еще объяснять людям, как этим макросом пользоваться. Так что тут все должно быть минимизировано по действиям :))
06.12.2005 15:21:29, Amencia
grumbler
Да уж...
Из колхозного творчества
1. Замена символа параграфа на какой-то знак (я делал @@@ в качестве маркера) и создание долбицы (разделитель статей - @@@@@)
2. Экспорт в Access и генерация отчета в текст с перестановкой и форматированием первых двух полей.
Желаю успеха, по-любому....
06.12.2005 16:35:57, grumbler
Сделала!

После основного условия (поск "х") - условие (do while)
и после выполнения необходимых действий - loop.
Он зацикливается и будет повторяться до тех пор, пока не перестанет находить свое условие (у меня это условие, раз найденное, удаляется последующими действиями)))
получилось:
Selection.Find.ClearFormatting
With Selection.Find
......
....
End With
Do While Selection.Find.Execute
Selection.MoveLeft...
.....
.....
.....
Loop
End sub
08.12.2005 18:30:25, Amencia
grumbler
Умничка... 09.12.2005 16:55:45, grumbler
Спасибо! :) 06.12.2005 16:42:26, Amencia


Материалы сайта носят информационный характер и предназначены для образовательных целей. Мнение редакции может не совпадать с мнениями авторов. Перепечатка материалов сайта запрещена. Права авторов и издателя защищены.



Рейтинг@Mail.ru
7я.ру - информационный проект по семейным вопросам: беременность и роды, воспитание детей, образование и карьера, домоводство, отдых, красота и здоровье, семейные отношения. На сайте работают тематические конференции, ведутся рейтинги детских садов и школ, ежедневно публикуются статьи и проводятся конкурсы.
18+

Если вы обнаружили на странице ошибки, неполадки, неточности, пожалуйста, сообщите нам об этом. Спасибо!