На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Word. Позиция курсора в строке
    Определяю номер листа, на котором находится курсор
    Определяю номер строки
    А как определить количество символов в строке до курсора?
      ExpandedWrap disabled
        Selection.Information(wdFirstCharacterColumnNumber)
        Вот ведь! Верите-нет - раз 100 сегодня это дело мимо проходил - считал, что это для таблиц. Спасибо, что ткнули носом :wub:
          поправочка: Selection.Information(wdFirstCharacterColumnNumber) дает номер столбца, так что если необходимо получить кол-во символов ДО курсора, то пишем
          ExpandedWrap disabled
            Selection.Information(wdFirstCharacterColumnNumber)-1
          или используя объектную схему (на любителя)
          ExpandedWrap disabled
            ActiveDocument.Range(ActiveDocument.ActiveWindow.Panes(1).Pages(1).Rectangles(1).Lines(1).Range.Characters.First.Start, Selection.Range.End).Characters.Count
            Old Bat, объектная схема - это хорошо, но для работы с переменными не совсем здорово - или я что-то не понимаю. Для того, чтобы вычислить то же кол-во символов в какой-то строке мы должны внести четыре переменных - Panes, Pages, Rectangles, Lines :wacko: :wacko: :wacko:
            Ну и ко всему я не знаю, как в этом случае определяется текущий Rectangles - все остальное знаю. Жаль, что нет - как в Ехселе - чего-то типа "активной ячейки".
            Сообщение отредактировано: bi-lya -
              естественно, вариант с Information гораздо шустрее, я всего лишь показал еще одну альтернативную возможность, оговорившись, что это вариант на любителя ;)
                Может, подскажете еще каким образом определить, какие Rectangle и Paragraph являются активными, т.е. в которых находится курсор?
                Пока - для определения Rectangles - пользуюсь просто выяснением количества Rectangles, и в общем-то оно работает, потому что (то, что пока мне встретилось) при наличии колонтитулов Rectangles "текстового поля" оказывается в нумерации последним, но это, конечно, до поры
                ExpandedWrap disabled
                  ActiveDocument.ActiveWindow.Panes(1).Pages(a).Rectangles.Count

                А для определения активного параграфа попробовал по примеру Old Bat'а с использованием объектной схемы - но... :wub:
                Сообщение отредактировано: bi-lya -
                  Selection.Information (wdActiveEndPageNumber) - это активная страница.

                  Добавлено
                  ActiveDocument.Range(1,selection.start).Paragraphs.Count - активный
                    чета я совсем уже туплю... такая фигня, текст вставил из буфера в ворд, теперь его надо постранично скопировать... не пойму как сделать..

                    подскажите плиз
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,1416 ]   [ 15 queries used ]   [ Generated: 10.11.25, 11:17 GMT ]