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 не работает. Буду признателен если подправите, и сделаете его стабильным.
и каком диапазоне заголовков (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 не работает. Буду признателен если подправите, и сделаете его стабильным.