Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - MS Office Word: какой объект выделен и в каком диапазоне заголовке находится

Ответить
Настройки темы
VBA - MS Office Word: какой объект выделен и в каком диапазоне заголовке находится

Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: doc Документ 2003.doc
(191.5 Kb, 2 просмотров)
Как определить какой объект выбран (рисунок, таблица, формула)
и каком диапазоне заголовков (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 не работает. Буду признателен если подправите, и сделаете его стабильным.

Отправлено: 19:52, 04-04-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 20:17, 04-04-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 21:01, 04-04-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 22:59, 04-04-2014 | #4


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 00:30, 05-04-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:40, 05-04-2014 | #6


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 21:15, 05-04-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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



?

Отправлено: 22:17, 05-04-2014 | #8


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 22:44, 05-04-2014 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - MS Office Word: какой объект выделен и в каком диапазоне заголовке находится

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Наборы - [OLD] MS Office 2010 PreSP2, MS Office 2007 PreSP4 и MS Office 2003 Rus PreSP4 sklart Наборы обновлений для Windows XP/2003/Windows 7 1397 20-04-2012 16:00
2003/XP/2000 - [решено] MS Office Word 2003 рабочие документы открываются чистые B100D Microsoft Office (Word, Excel, Outlook и т.д.) 17 12-05-2011 09:24
В каком файле дистрибутива находится текст... Immix Автоматическая установка Windows 2000/XP/2003 14 01-05-2010 22:22
2003/XP/2000 - [решено] Пакет обеспечения совместимости MS Office 2000-2003 с файлами MS Office 2007 Alexander7 Microsoft Office (Word, Excel, Outlook и т.д.) 2 15-05-2008 11:47
MS Office как объект OLE (Делфи) Kroc Программирование и базы данных 14 30-10-2004 13:06




 
Переход