Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти элементы в Word / 14 сообщений из 14, страница 1 из 1
12.05.2009, 10:08
    #35979743
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
В Word'e накидал элементы управления Label (надпись).
Подскажите, мне пожалуйста, как с помощью VB обойти все элементы управления, найти label'ы и установыить им определенные заголовоки (caption)
...
Рейтинг: 0 / 0
14.05.2009, 16:02
    #35985930
wladgreeniv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
Идея такова.
Создаёшь массив лейблов и обходишь его

Dim LabelArray(сколько_лейблов) As Label


Private Sub Document_Open()

Set LabelArray(0) = Label1
.........
Set LabelArray(сколько) = Label_последний

End Sub


Потом в цикле присваиваешь лейблам новые значения
...
Рейтинг: 0 / 0
15.05.2009, 07:51
    #35987107
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
wladgreeniv, спасибо за подсказку. Но можно же за один проход пройти все лайбелы. Например, так

Private Sub Document_Open()
Dim laControl As Control

For Each laControl In Controls
If TypeOf laControl Is Label Then
'что-то делаем
End If
Next laControl
End Sub

Но при таком коде вылетает ошибка run-time error '424': Object required. Вот на эту строчку
For Each laControl In Controls.
Подскажи, пожалуйста, как за один проход проставить значения у лайбелов. Во вложении Word'овский файл, с которым я шаманю
...
Рейтинг: 0 / 0
15.05.2009, 07:55
    #35987110
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
а у меня не вылетает
...
Рейтинг: 0 / 0
15.05.2009, 08:12
    #35987120
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
EmilRegis, я конечно за тебя рад, что у тебя работает, но ты мне лучше подскажи, что мне сделать, чтобы капшены у лабелов все проставились у меня. И к стати, глянь мой файл в архиве, проставятся у тебя даты в лабелах
...
Рейтинг: 0 / 0
15.05.2009, 08:24
    #35987130
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
у меня на работе запрет на скачивание всяких прикрепышей))))
Запусти этот цикл на пустой форме с парой лейблов...не знаю,у меня работает...у тебя тоже в принципе должно
...
Рейтинг: 0 / 0
15.05.2009, 08:38
    #35987145
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
EmilRegis, у меня тоже так работает когда на UserForm накидал лабелы. Но суть в другом. Я взял открыл Word, вызвал панель Элементов управления, накидал на листе элементы управления Label. Вот теперь их и надо обойти все)). Как это сделать?
...
Рейтинг: 0 / 0
15.05.2009, 08:39
    #35987146
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
приведи лучше тут кусок кода
...
Рейтинг: 0 / 0
15.05.2009, 08:43
    #35987155
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
EmilRegis, вот код

Private Sub Document_Open()

Dim la As Label
Dim laControl As Control

For Each laControl In Controls
If TypeOf laControl Is Label Then

Set la = laControl
la.Caption = Format(Date, "dd mmmm yyyy")
End If
Next laControl
End Sub

У меня в проекте нет форм. Есть только Label'ы накиданые на листе документа
...
Рейтинг: 0 / 0
15.05.2009, 11:44
    #35987702
Krasnaja Shapka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
а что есть "Controls"?
они явно не просто контролс, а как-то привязаны к документу...
...
Рейтинг: 0 / 0
15.05.2009, 12:00
    #35987755
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
Krasnaja Shapka, скажи тогда как? Какой метод тогда заюзать в ThisDocument, чтобы обойти все элементы управления (или контролы).
...
Рейтинг: 0 / 0
15.05.2009, 12:08
    #35987782
SoftParanoik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ShowLabels()
    Dim wShape As Word.InlineShape
    For Each wShape In ActiveDocument.InlineShapes
        If Not wShape.OLEFormat Is Nothing Then
            If TypeOf wShape.OLEFormat.Object Is MSForms.Label Then
                MsgBox wShape.OLEFormat.Object.Caption
            End If
        End If
    Next wShape
End Sub
...
Рейтинг: 0 / 0
15.05.2009, 12:24
    #35987821
Alex_WT_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
SoftParanoik, О, большое спасибо тебе, теперь счастье на свете есть :)
Подскажи, где можно почитать, на каком сайте про VBA для Word'а или Excel'я. А то смотрел на некоторых, но не находил необходимой инфы. Заранее благодарен!
...
Рейтинг: 0 / 0
15.05.2009, 12:34
    #35987846
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти элементы в Word
> Автор: Alex_WT_
Читаешь "C:\Program Files\Microsoft Office\OFFICE11\1033\VBAXL10.CHM" и "C:\Program Files\Microsoft
Office\OFFICE11\1033\VBAWD10.CHM"
Если файлов нет, доустанавливаешь компоненты офиса


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти элементы в Word / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]