позиция курсора
Подписаться на эту метку по 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

Форум
Читают
Обсуждают
страницы
сайты
статистика