Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 08:21   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Редактирование свойств форм

В ячейке A1 расположена "Форма" "Поле со список".
Как из VBA редактировать его свойства? В частности нужно изменить ячейку на которую для вывода номера выбранного пункта.
Вложения
Тип файла: rar Книга1.rar (4.2 Кб, 13 просмотров)
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 22.03.2009, 09:03   #2
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию

Я сделал следующее:
Запустил на запись макрос, сделал изменения в свойствах раскрывающегося списка (поменял связаную ячейку на С1), остановил макрос и посмотрел, что получилось.

Код:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 22.03.2009 (User)
'

'
    ActiveSheet.Shapes("Drop Down 1").Select
    With Selection
        .ListFillRange = "$D$4:$D$13"
        .LinkedCell = "$C$1"
        .DropDownLines = 8
        .Display3DShading = False
    End With
    Range("C18").Select
End Sub
Осталось подредактировать и подогнать под свои потребности.

Очень полезное упражнение. Я им частенько пользуюсь!
nemoomen вне форума Ответить с цитированием
Старый 22.03.2009, 09:22   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от nemoomen Посмотреть сообщение
Код:
Sub Макрос1()
    ActiveSheet.Shapes("Drop Down 1").Select
    With Selection
    Range("C18").Select
End Sub
Что-то я про тормозил.....
Хорошо, а если на листе много подобных форм. И создавались они методом копирования через буфер обмена то есть имена их не известны. Но я знаю адреса ячеек на которых они располагаться. Ситуация может осложняться тем что копирование и удаление форм могут идти совершенно произвольном порядке, отследить который нет ни какой возможности.
Как быть с выбором нужной "формы" на редактирование в этом случае?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 22.03.2009, 09:32   #4
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию

Цитата:
И создавались они методом копирования через буфер обмена то есть имена их не известны.
Правой кнопкой мыши на форме, смотрим на строку формул, слева в окошке будет имя формы в твоем примере - "Раскр. список 1"

Код:
ActiveSheet.Shapes("Drop Down 1").Select
Код:
ActiveSheet.Shapes("Раскр. список 1").Select
Оба кода в данном случае равноценны.
nemoomen вне форума Ответить с цитированием
Старый 22.03.2009, 09:47   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Программно узнать параметры комбобокса можно так:

Код:
Sub ВыводИнформацииОКомбобоксах()
    Dim sh As Worksheet, dd As DropDown: Set sh = ActiveSheet
    For i = 1 To sh.DropDowns.Count
        Set dd = sh.DropDowns(i)
        Debug.Print dd.Name & "  расположен в ячейке  " & dd.TopLeftCell.Address
    Next i
End Sub
В результате получаем что-то вроде этого:
Цитата:
Drop Down 7 расположен в ячейке $A$13
Drop Down 8 расположен в ячейке $A$14
Drop Down 9 расположен в ячейке $D$17
Аналогично, если нам известен адрес ячейки, в которой расположен комбобокс, мы легко сможем его найти, перебирая все комбобоксы на листе в поисках того, у которого свойство TopLeftCell равно адресу нужной ячейки.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
описание свойств webbrowser Анастасия123456789 Работа с сетью в Delphi 10 25.12.2011 14:41
Перечисление свойств элемента управления YuraL Microsoft Office Excel 2 08.03.2009 13:02
редактор свойств из Stringgrid Leksmaster Фриланс 3 01.03.2009 01:11
Изменение свойств файла dimonbest Win Api 7 23.02.2009 20:42
Изменение свойств компонентов jocry Общие вопросы Delphi 9 10.02.2009 10:27