позиция курсора
Подписаться на эту метку по RSS
Как определить стиль абзаца, в котором находится курсор ввода
Метки: макросы | позиция курсора | стили
Дата: 26/12/2008 13:09:01
Вопрос от Андрея:
Сейчас пишу макрос следующего содержания - необходимо поставить курсор на любой из абзацев и получить полную информацию о стиле документа. Информацию о параметрах шрифта уже выбрал, пусть и не всю, но основую. Встал банальный вопрос - как из макроса получить имя стиля абзаца на котором в данный момент находится курсор?
Получить имя текущего стиля слова, на котором находится курсор ввода, можно так:
MsgBox Selection.Style
Но можно и не использовать макрос - достаточно открыть область задач Показать форматирование («Shift+F1»), где и будет отображена вся информация о текущем стиле.
Как определить номер параграфа, в котором найден фрагмент текста
Метки: макросы | нумерация | позиция курсора
Дата: 25/12/2008 13:52:24
Анатолий задал вопрос:
Как определить номер (pos) параграфа (Paragraphs), в котором найден нужный фрагмент, с тем, чтобы я смог его в дальнейшем использовать?
Например, можно определить текущую позицию курсора в сантиметрах с помощью следующего макроса:
Читать полностью
Как определить нахождение курсора ввода в ячейке таблицы
Как узнать, находится ли курсор ввода в таблице в документе Word или нет?
Недавно мне пришлось столкнуться с такой проблемой, когда я готовил шаблон документа для организации. Пришлось поспрашивать на тематических форумах по программированию. Решение нашлось быстро. Возможно оно кому-то и пригодится.
P.S. Обнаружилось, что если курсор ввода находится в конце таблицы (не в последней ячейке, а за границей таблицы впритык к последней ячейке), то этот макрос выдает неверный результат.
Правильнее использовать другой код (макрос + функция), опубликованный ниже макроса "PointIntoTable".
Sub PointIntoTable Set rngTable = Selection.Range If Not rngTable.Information(wdWithInTable) Then MsgBox prompt:="Курсор находится вне таблицы" Else ... 'ваш код после условия End if End sub
Дополнено с учетом комментариев Вождя и Александра Витера:
Sub PointIntoTable2() Dim rngTable As Range Set rngTable = Selection.Range If Range_InCell(rngTable) = True Then MsgBox prompt:="Курсор находится в таблице" Else MsgBox prompt:="Курсор находится вне таблицы" End If End Sub Public Function Range_InCell(ByRef icRange As Word.Range) As Boolean ' возвращает True, если область icRange целиком находится в ячейке Range_InCell = False On Error Resume Next If icRange.Information(wdWithInTable) <> True Then ElseIf icRange.Cells.Count <> 1 Then Else Range_InCell = True End If End Function