Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   MS Office Word: какой объект выделен и в каком диапазоне заголовке находится (http://forum.oszone.net/showthread.php?t=280336)

Sta1917 04-04-2014 19:52 2333153

MS Office Word: какой объект выделен и в каком диапазоне заголовке находится
 
Вложений: 1
Как определить какой объект выбран (рисунок, таблица, формула)
и каком диапазоне заголовков (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 2333162

Цитата:

Цитата Sta1917
Как определить какой объект выбран »

«Выбран» — выделен?

Цитата:

Цитата Sta1917
и каком диапазоне заголовков (1-4 и 5-9) находится? »

Переведите на русский. И поясните:
Цитата:

Цитата Sta1917
С таблицей приложения А.1 не работает. »


Sta1917 04-04-2014 21:01 2333181

Цитата:

Цитата Iska
«Выбран» — выделен? »

Да, формула или рисунок выделены, а в таблице установлен курсор в одной из ее ячеек.
Цитата:

Цитата Iska
и каком диапазоне заголовков (1-4 и 5-9) находится? »

Заголовками уровня с 1 по 4 оформляется основной текст;
заголовками уровня с 5 по 9 оформляются приложения.
нужно выяснить в каком диапазоне заголовков находится выделенный объект.
Цитата:

Цитата Iska
С таблицей приложения А.1 не работает. »

В приложенном файле если поставить курсор в таблицу A.1 и выполнить данный макрос, он не выдаст MsgBox.

Iska 04-04-2014 22:59 2333250

Цитата:

Цитата Sta1917
нужно выяснить в каком диапазоне заголовков находится выделенный объект. »

Вот я и не пойму, что означает «находится в диапазоне заголовков».

Sta1917 05-04-2014 00:30 2333288

В этом макросе определяется номер уровня заголовка, если уровень меньше 5, то... если больше 5 то...

Iska 05-04-2014 14:40 2333418

Sta1917, меня не это интересует. Я не пойму, что значит «находится в диапазоне».

Sta1917 05-04-2014 21:15 2333607

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

Iska 05-04-2014 22:17 2333644

Sta1917, в каких «пределах», в каком «диапазоне» находится точка вставки на следующем скриншоте:



?

Sta1917 05-04-2014 22:44 2333657

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


Время: 12:05.

Время: 12:05.
© OSzone.net 2001-