Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 9 ]
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
- За сообщение: 1
Тема: Количество страниц и выделение текста страницы в активном документе
Для программного (с помощью макроса) определения количества страниц в активном документе можно использовать следующую процедуру:
Public Sub Pages1()
MsgBox (ActiveDocument.ActiveWindow.Panes(1).Pages.Count)
End Sub
В объектной модели Word коллекция Pages (Страницы) подчинена объекту Pane (Панель).
Поскольку панель в активном документе обычно одна, то для обращения к коллекции Pages можно использовать родительский объект Panes(1).
Также хотелось бы обратить внимание, что объект Page (Страница) включает в себя в основном параметры страницы.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- За сообщение: 2
Re: Количество страниц и выделение текста страницы в активном документе
Alex_Gur пишет:В объектной модели Word коллекция Pages (Страницы) подчинена объекту Pane (Панель).
Поскольку панель в активном документе обычно одна, то для обращения к коллекции Pages можно использовать родительский объект Panes(1).
Также хотелось бы обратить внимание, что объект Page (Страница) включает в себя в основном параметры страницы, но не текст, размещенный на странице.
В дополнение к выше сказанному!!!
Каждый объект Page (Страница) имеет свойство Rectangles, который включает в себя все объекты находящиеся на указанной странице. Объект Rectangle может быть разных типов: текст, рисунки, разные линии нарисованные средствами Word, элементы управления, выделение и прочее. Определяет тип Rectangle свойство WdRectangleType. Если, например Rectangle.RectangleType = 0, это означает, что данный блок является текстовым и соответственно можно напрямую обратится к свойству Range блока.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
aap77 пишет:Каждый объект Page (Страница) имеет свойство Rectangles, который включает в себя все объекты находящиеся на указанной странице. Объект Rectangle может быть разных типов: текст, рисунки, разные линии нарисованные средствами Word, элементы управления, выделение и прочее. Определяет тип Rectangle свойство WdRectangleType. Если, например Rectangle.RectangleType = 0, это означает, что данный блок является текстовым и соответственно можно напрямую обратится к свойству Range блока.
Большое спасибо, Александр!
Очень меня порадовали!
На днях постараюсь добраться до свойства Text страницы, как Вы посоветовали.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
Выделение текста второй страницы активного документа. Может быть, не самое красивое решение, но работает:
Public Sub Page1()
Dim Type1 As Integer
Dim i As Integer
Dim a As Integer
Dim b As Integer
i = 0
For Each Rectangle1 In ActiveDocument.ActiveWindow.Panes(1).Pages(1).Rectangles
' Pages(2) - это вторая страница активного документа
Type1 = Rectangle1.RectangleType
If Type1 = 0 Then
Select1 = Rectangle1.Range.Text
If i = 0 Then
a = Rectangle1.Range.Start
End If
i = i + 1
b = Rectangle1.Range.End
End If
Next [Rectangle1]
ActiveDocument.Range(a, b).Select
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Boris_R
- полковник
- Неактивен
- Зарегистрирован: 07.08.2012
- Сообщений: 234
- Поблагодарили: 110
- За сообщение: 1
Re: Количество страниц и выделение текста страницы в активном документе
Можно использовать предопределенную закладку \page
Тогда код будет немного покороче
Sub Page2()
'Используется предопределенная закладка \page
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
Selection.GoTo What:=wdGoToBookmark, Name:="\page"
End Sub
Правда не всегда этот код (впрочем как и любой друеой) работает корректно.
Про страницы Ворд можно посмотреть здесь (ссылки ведут на англоязычные сайты):
внешняя ссылка
внешняя ссылка
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
Boris_R пишет:Можно использовать предопределенную закладку \page
Тогда код будет немного покороче
Sub Page2()
'Используется предопределенная закладка \page
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
Selection.GoTo What:=wdGoToBookmark, Name:="\page"
End Sub
Правда не всегда этот код (впрочем как и любой друеой) работает корректно.
Про страницы Ворд можно посмотреть здесь (ссылки ведут на англоязычные сайты):
внешняя ссылка
внешняя ссылка
Спасибо большое!
Следующий код выделяет текущую страницу:
Sub Page3()
ActiveDocument.Bookmarks("\page").Range.Select
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
Удаление текущей страницы:
Sub Page4()
' Выделение текущей страницы
ActiveDocument.Bookmarks("\page").Range.Select
' Удаление выделенного фрагмента
Selection.Delete Unit:=wdCharacter, Count:=1
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
Вырезать текущую страницу и поместить ее в буфер обмена:
Sub Page5()
' Выделение текущей страницы
ActiveDocument.Bookmarks("\page").Range.Select
' Вырезание выделенного фрагмента и помещение его в буфер обмена
Selection.Cut
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Количество страниц и выделение текста страницы в активном документе
Выделение каждой страницы в документе:
Sub Pages6()
Dim j As Integer ' Номер страницы
j = 1
' Переход на первую страницу
Selection.HomeKey Unit:=wdStory
For Each Page In ActiveDocument.ActiveWindow.Panes(1).Pages
' Выделение текущей страницы
ActiveDocument.Bookmarks("\page").Range.Select
' Копирование текущей страницы
Selection.Copy
j = j + 1
' Переход на следующую страницу
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=str(j)
Next [Page]
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
Сообщений [ 9 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Количество страниц и выделение текста страницы в активном документе
Если вы давно работаете с приложением Microsoft Word, то наверняка сталкивались с тем, что многие его вкладки и функции вами не используются и не совсем понятно, как они работают и для чего предназначены. На портале о Microsoft Office Word вы узнаете про: рисунок в ворде на языке программирования vb.
Познакомить вас со всеми секретами программы могут на форуме сайта Ворд Эксперт, который и посвящен обсуждению именно тонких настроек и функций. На портале о Microsoft Office Word вы узнаете про: ключ новый для офис 2007.
Здесь есть возможность разобраться с шаблонами Ворда, написанием макросов, назначением горячих клавиш, различными способами ускорения и автоматизации операций редактирования и форматирования. На портале о Microsoft Office Word вы узнаете про: как сделать в верде2003 рамку.
На Ворд Эксперт вам предложат также готовые решения многих задач или оставить свою заявку на разработку. Наш сайт о Microsoft Office Word даст ответ про: сумма прописью.