Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2009, 09:59   #1
АлёнаP
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 56
Восклицание рызрыв страницы

Как сделать, чтобы перед первым найденным словом вставить разрыв страницы?
АлёнаP вне форума Ответить с цитированием
Старый 11.03.2009, 11:14   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Алёна, ваше условие слишком неопределенное. А что, в документе так мало слов?
Можно вот так вставить разрыв страницы перед каждым словом
Код:
Sub InsertBreakBeforeEveryWord()
  Dim oWord As Range
  With ThisDocument
    .Range(.Words.First.Start, .Words.First.Start).InsertBreak wdPageBreak
    Set oWord = .Words.First.Next(wdWord).Next(wdWord)
    Do
      .Range(oWord.End, oWord.End).InsertBreak wdPageBreak
      Set oWord = oWord.Next(wdWord).Next(wdWord).Next(wdWord).Next(wdWord)
    Loop Until oWord Is Nothing
  End With
End Sub
Этот макрос работает с коллекцией Words, поэтому кавычки, знаки препинания воспринимаются как отдельные слова, какими они по сути и являются.

Кроме того, Алёна, вы не указали какой разрыв вам нужно вставлять. Разрывов в Word несколько:
  1. Разрыв строки (3 типа)
  2. Разрыв колонки
  3. Разрыв раздела (4 типа)
  4. Просто разрыв страницы
  5. Разрыв с перетеканием.
Если приложите документ и напишите, что вам нужно, то помощь будет более существенной.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 11.03.2009, 14:53   #3
АлёнаP
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 56
По умолчанию

Мне нужен простой разрыв страницы.
т.е. бейсиком я окрываю документ word, и уже в этом документе необходимо сделать первую страницу пустой. Хотела разрывом страницы.
АлёнаP вне форума Ответить с цитированием
Старый 11.03.2009, 15:06   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Ну вот видите, если правильно сформулировать задачу, то все гораздо проще.
Код:
ActiveDocument.Range(0,0).InsertBreak wdPageBreak
Если ваш документ сохранен в переменной, то вместо ActiveDocument ставьте эту переменную.

Поясню, что делает эта строка. Она вставляет разрыв страницы, но не куда попало, а в самую первую позицию в документе. Объект Range (диапазон) хранит в себе все содержимое документа. А Range(0,0) — это самое начало документа.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 11.03.2009 в 15:09.
viter.alex вне форума Ответить с цитированием
Старый 11.03.2009, 15:59   #5
АлёнаP
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 56
По умолчанию

Спасибо! Спасибо! Спасибо!

У меня получилось вот так:
Set w = CreateObject("Word.application")
......
w.Selection.InsertBreak 7 'wdPageBreak
.......
.......
АлёнаP вне форума Ответить с цитированием
Старый 11.03.2009, 16:19   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от АлёнаP Посмотреть сообщение
Спасибо! Спасибо! Спасибо!

У меня получилось вот так:
Set w = CreateObject("Word.application")
......
w.Selection.InsertBreak 7 'wdPageBreak
.......
.......
Ну, в общем-то правильно, но работать через Selection не удобно. Вам придется постоянно следить, где находится ваш курсор, чтобы не вставить то, что не нужно, туда, куда не нужно. Рекомендую сделать так:
Код:
Set oDoc = w.Documents.Add 'Добавляем новый документ
oDoc.Range(0,0).InsertBreak 7 'wdPageBreak
И в дальнейшем работайте через этот объект, в котором хранится ваш документ.
Минимум, что это вам дает — скорость работы. Раза в полтора быстрее, чем при работе с Selection

Например, у вас в коде. Откуда вы знаете, что курсор находится в начале документа? Тем более, что при CreateObject само приложение не видно, если не установить его свойство Visible. Да и документа в нем нет открытого, значит, вы все равно документ окрываете. Поэтому советую работать с Range.

Шепотом
Я этот Range сам не понимал довольно продолжительное время, и работал через Selection. Но когда понял…
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 11.03.2009 в 16:45.
viter.alex вне форума Ответить с цитированием
Старый 11.03.2009, 17:03   #7
АлёнаP
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 56
По умолчанию

Ведь когда мы добавляем документ или открываем его, курсор находится в начале документа. Я проверила.
Я учту замечания
Спасибо!!!

Последний раз редактировалось АлёнаP; 11.03.2009 в 17:08.
АлёнаP вне форума Ответить с цитированием
Старый 11.03.2009, 17:14   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от АлёнаP Посмотреть сообщение
Ведь когда мы добавляем документ или открываем его, курсор находится в начале документа. Я проверила.
Я учту замечания
Спасибо!!!
Я же говорю, нужно постоянно это проверять. Тем более не факт, что документ находится в начале документа при его открытии. Можно так настроить, чтобы курсор был в последнем месте редактирования. Вручную это Shift+F5.
Успехов.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение URL страницы в JavaScript без перезагрузки страницы ilusha JavaScript, Ajax 7 25.02.2009 09:59
Начало страницы tolikman Microsoft Office Word 4 28.11.2008 14:10
страницы сайта xakkkkker Работа с сетью в Delphi 3 06.11.2008 19:17
Сохранение страницы Патрон PHP 3 28.03.2008 00:00
Как сделать разрыв страницы печати по условию и узнать номер страницы Leanna Microsoft Office Excel 2 21.01.2008 06:59