PDA

Показать полную графическую версию : MS Office Word: какой объект выделен и в каком диапазоне заголовке находится


Sta1917
04-04-2014, 19:52
Как определить какой объект выбран (рисунок, таблица, формула)
и каком диапазоне заголовков (1-4 и 5-9) находится?
Как я понял с выбором формул проблема т.к. они тоже относятся к рисункам.
Разобрался только с выбором рисунков и таблиц:
Option Explicit
Dim s1, j1, u1
Dim pr As Paragraph

Private Function Zagolovok() As Integer
j1 = Selection.Range.Start

For Each pr In Word.ActiveDocument.Paragraphs
If pr.OutlineLevel > 0 And pr.OutlineLevel <= 9 Then
u1 = pr.OutlineLevel
End If
If pr.Range.Start = j1 Then
Exit For
End If
Next pr
Zagolovok = u1
End Function

Private Function Picture_Table() As Integer
If Selection.Range.ShapeRange.Count = 1 Or Selection.InlineShapes.Count = 1 Then
Picture_Table = 1 ' есть рисунок
Else
If Selection.Information(wdWithInTable) = True Then
Picture_Table = 2 ' курсор в таблице
Else
Picture_Table = 0 ' нет ничего
End If
End If
End Function

Sub Проверка_типа()
If Zagolovok < 5 And Picture_Table = 1 Then
MsgBox "Рисунок основного текста"
Else
If Zagolovok > 5 And Picture_Table = 1 Then
MsgBox "Рисунок приложения"
Else
If Zagolovok < 5 And Picture_Table = 2 Then
MsgBox "Таблица основного текста"
Else
If Zagolovok > 5 And Picture_Table = 2 Then
MsgBox "Таблица приложения"
Else
If Picture_Table = 0 Then
MsgBox "Выделенных таблиц и рисунков нет"
End If
End If
End If
End If
End If
End Sub
С таблицей приложения А.1 не работает. Буду признателен если подправите, и сделаете его стабильным.

Iska
04-04-2014, 20:17
Как определить какой объект выбран »
«Выбран» — выделен?

и каком диапазоне заголовков (1-4 и 5-9) находится? »
Переведите на русский. И поясните:
С таблицей приложения А.1 не работает. »

Sta1917
04-04-2014, 21:01
«Выбран» — выделен? »
Да, формула или рисунок выделены, а в таблице установлен курсор в одной из ее ячеек.
и каком диапазоне заголовков (1-4 и 5-9) находится? »
Заголовками уровня с 1 по 4 оформляется основной текст;
заголовками уровня с 5 по 9 оформляются приложения.
нужно выяснить в каком диапазоне заголовков находится выделенный объект.
С таблицей приложения А.1 не работает. »
В приложенном файле если поставить курсор в таблицу A.1 и выполнить данный макрос, он не выдаст MsgBox.

Iska
04-04-2014, 22:59
нужно выяснить в каком диапазоне заголовков находится выделенный объект. »
Вот я и не пойму, что означает «находится в диапазоне заголовков».

Sta1917
05-04-2014, 00:30
В этом макросе определяется номер уровня заголовка, если уровень меньше 5, то... если больше 5 то...

Iska
05-04-2014, 14:40
Sta1917, меня не это интересует. Я не пойму, что значит «находится в диапазоне».

Sta1917
05-04-2014, 21:15
Если выделенный объект находится в пределах заголовка 1 уровня - то это основной текст
Если выделенный объект находится в пределах заголовка 5 уровня - то это приложения
Диапазоном я назвал заголовки
с 1 по 4 уровень (основной текст)
с 4 по 9 уровень (приложения)

Iska
05-04-2014, 22:17
Sta1917, в каких «пределах», в каком «диапазоне» находится точка вставки на следующем скриншоте:

http://img812.imageshack.us/img812/5517/ieey.png

?

Sta1917
05-04-2014, 22:44
Находится в заголовке второго уровня, в "пределах" первого заголовка, "диапазон" от 1 до 4 заголовка.
"Пределы" и "Диапазоны" это условность разбивающая оформление документа на две части: основной текст и приложения. Надеюсь не очень Вас запутал.




© OSzone.net 2001-2012