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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 21:48   #1
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Вопрос "Активный" абзац в WORDе

В VBA EXCEL адрес активной ячейки определяется элементарно (activecell.address, activecell.row, activecell.column). А вот при первом знакомстве с VBA WORD способ определить номер выделенного абзаца мне найти не удалось. Но ведь без этого никак ?

Последний раз редактировалось vfayans; 15.01.2010 в 15:19. Причина: синтаксис
vfayans вне форума Ответить с цитированием
Старый 14.01.2010, 22:07   #2
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Например, так (текущий абзац, т.е. в котором находится курсор ввода):
Код:
MsgBox ActiveDocument.Range(1, Selection.Start).Paragraphs.Count
akokin вне форума Ответить с цитированием
Старый 14.01.2010, 22:10   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Наименьшей структурной единицей в Word является символ (character).

Номер абзаца определяется так:
Код:
ActiveDocument.Range(0, Selection.Start).Paragraphs.Count
чтобы не повторять Антона Кокина, добавлю, что это можно прочитать так: количество абзаце в части документа от первого символа до местоположения курсора.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 14.01.2010 в 22:13.
viter.alex вне форума Ответить с цитированием
Старый 14.01.2010, 22:14   #4
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Если курсор ввода стоит в начале первого предложения абзаца, то наш код будет давать неверный результат, а именно номер предыдущего абзаца (параграфа).

Последний раз редактировалось akokin; 14.01.2010 в 22:16. Причина: Ошибка при тестировании
akokin вне форума Ответить с цитированием
Старый 16.01.2010, 05:22   #5
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию Согласен

Цитата:
Сообщение от akokin Посмотреть сообщение
Если курсор ввода стоит в начале первого предложения абзаца, то наш код будет давать неверный результат, а именно номер предыдущего абзаца (параграфа).
Лучше писать так:
Код:
Public Function Selection_ParagraphNumber() As Long
' возвращает порядковый номер от начала документа
' первого выделенного параграфа (-1 при ошибке)

    Selection_ParagraphNumber = -1
    On Error Resume Next
    If Application.Documents.Count <= 0 Then
    Else
        Selection_ParagraphNumber = ActiveDocument.Range(0, _
            Selection.Paragraphs.First.Range.End).Paragraphs.Count
    End If
    
End Function
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 16.01.2010, 11:47   #6
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Александр, спасибо за функцию определения номера активного абзаца - интересно и полезно лично для меня.
И второе (отправил вам письмо, но не уверен, что дойдет, поэтому повторяю здесь) - у вас не отображается домашняя страница, а следовательно, нет возможности скачать вашу методичку у меня на сайте. Может быть стоит разместить ее у меня на сайте (я говорю о файле)?
Жду вашего ответа.
akokin вне форума Ответить с цитированием
Старый 16.01.2010, 13:11   #7
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от akokin Посмотреть сообщение
Александр, спасибо за функцию определения номера активного абзаца - интересно и полезно лично для меня.
И второе (отправил вам письмо, но не уверен, что дойдет, поэтому повторяю здесь) - у вас не отображается домашняя страница, а следовательно, нет возможности скачать вашу методичку у меня на сайте. Может быть стоит разместить ее у меня на сайте (я говорю о файле)?
Жду вашего ответа.
Мой сайт уже заработал. Это tut.by периодически сбоит.

Письмо не получил. Пишите methodichka@gmail.com

Ваш E-mail не нашел, потому пишу здесь.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51