В экселе есть макрос - реакции, на попадании определенной строки - в поле зрения. Если к примеру - строка 500 - попадает в область видимости экрана - то макрос срабатывает один раз.
Как сделать подобную реакцию макроса в ворде, чтобы макрос реагировал на попадание определенного листа (например 5 листа) в поле видимости экрана ? (речь идет не о вставке курсора на определенный лист, а именно о попадании листа - в область видимости)
В экселе есть макрос - реакции, на попадании определенной строки - в поле зрения. Если к примеру - строка 500 - попадает в область видимости экрана - то макрос срабатывает один раз.
Как сделать подобную реакцию макроса в ворде, чтобы макрос реагировал на попадание определенного листа (например 5 листа) в поле видимости экрана ? (речь идет не о вставке курсора на определенный лист, а именно о попадании листа - в область видимости)DimOzerov
В экселе есть макрос - реакции, на попадании определенной строки - в поле зрения.
В Word нет события на прокрутку окна. Так что придётся делать таймер. В обработчике события таймера уже по проще, если под заданной точкой окна объект Range, то можно получить номер страницы так. [vba]
В экселе есть макрос - реакции, на попадании определенной строки - в поле зрения.
В Word нет события на прокрутку окна. Так что придётся делать таймер. В обработчике события таймера уже по проще, если под заданной точкой окна объект Range, то можно получить номер страницы так. [vba]
на экране Word показывает одновременно 6 страниц - как определить, какая из них нужная?
Я всегда прокручиваю страницы так, что в поле видимости - всегда одна страница. Если - в области экрана несколько страниц- то увеличиваю масштаб - так, чтобы была только одна.
Вы привели в пример - строчку кода. А куда ее надо поставить в ворде?
Ведь в имеющемся экселевском макросе - код разбит на код книги и код листа. А в Ворде там какая-то другая схема расположения макросов в структуре документа, вроде бы.
на экране Word показывает одновременно 6 страниц - как определить, какая из них нужная?
Я всегда прокручиваю страницы так, что в поле видимости - всегда одна страница. Если - в области экрана несколько страниц- то увеличиваю масштаб - так, чтобы была только одна.
Вы привели в пример - строчку кода. А куда ее надо поставить в ворде?
Ведь в имеющемся экселевском макросе - код разбит на код книги и код листа. А в Ворде там какая-то другая схема расположения макросов в структуре документа, вроде бы.DimOzerov
Я, собственно, и не выкладывал готовый код. Это черновой набросок алгоритма, требующий разработки. Код для таймера. Та строчка, которую нужно куда-то там вставить демострирует, как при наступлении события таймера получить объект Range, лежащий под заданными координатами экрана и номер страницы его конечного символа. Всё это требует исследования и разработки решения.
Я, собственно, и не выкладывал готовый код. Это черновой набросок алгоритма, требующий разработки. Код для таймера. Та строчка, которую нужно куда-то там вставить демострирует, как при наступлении события таймера получить объект Range, лежащий под заданными координатами экрана и номер страницы его конечного символа. Всё это требует исследования и разработки решения.anvg
А в Ворде как эта строчка должна отобразится? Я имею ввиду - что может быть заменой обозначения пятисотой строки Rows("500") - для вордовской страницы №10 ?
(то есть в ворде строк нет, есть наверное обозначение навроде page("10") )
anvg, не подскажете какой аналог строки Экселя - есть в Ворде ? В экселевском макросе имеется строчка обозначения нужного места [vba]
А в Ворде как эта строчка должна отобразится? Я имею ввиду - что может быть заменой обозначения пятисотой строки Rows("500") - для вордовской страницы №10 ?
(то есть в ворде строк нет, есть наверное обозначение навроде page("10") )DimOzerov
Формально аналога нет, как и нет аналога VisbileRange (хотя можете поискать, а вдруг?!). Можно получить номер строки только на странице Range.Information(wdFirstCharacterLineNumber) при учёте некоторых условий детали. Можно получить через Application.ActiveWindow.RangeFromPoint(1,1) условный видимый односимвольный Range начала (условный, так как включает и текст по Ribbon при полностью развёрнутом окне), и условный конец Application.ActiveWindow.RangeFromPoint(1920,1024). Плюс, вычислять номера страниц, определять для всех страниц, число строк на них. То есть вычислить абсолютные номера строк. И уже тут определяться - входит ли ваша 500 строка в видимый диапазон или нет. Успехов.
Цитата
какой аналог строки Экселя - есть в Ворде ?
Формально аналога нет, как и нет аналога VisbileRange (хотя можете поискать, а вдруг?!). Можно получить номер строки только на странице Range.Information(wdFirstCharacterLineNumber) при учёте некоторых условий детали. Можно получить через Application.ActiveWindow.RangeFromPoint(1,1) условный видимый односимвольный Range начала (условный, так как включает и текст по Ribbon при полностью развёрнутом окне), и условный конец Application.ActiveWindow.RangeFromPoint(1920,1024). Плюс, вычислять номера страниц, определять для всех страниц, число строк на них. То есть вычислить абсолютные номера строк. И уже тут определяться - входит ли ваша 500 строка в видимый диапазон или нет. Успехов.anvg
Сообщение отредактировал anvg - Пятница, 18.08.2017, 14:32