Отображаемые вами элементы управления являются частью FM20.DLL; который является частью пакета установки Office.
Вы можете увидеть, что все они являются частью одной и той же библиотеки DLL, посмотрев на часть «Расположение» в поле «Дополнительные элементы управления».
AFAIK, это единственные элементы управления, которые гарантированно доступны в большинстве установок Office.
Итак, давайте посмотрим, что можно сделать конкретно для каждого элемента управления, о котором вы спрашиваете в своих комментариях:
- список возможностей "сетки"
- иерархическое древовидное представление
- управление календарем
Сетки
Это будет зависеть от ваших требований, но вы можете обойтись без списка. Список в VBA имеет несколько свойств, которые сделают его похожим на сетку.
Например, допустим, рабочий лист в Excel выглядит так:
ID001 Value 1 Description 1
ID002 Value 2 Description 2
ID003 Value 3 Description 3
Список поддерживает несколько столбцов, поэтому вы можете отобразить эти значения, установив для свойства списка ColumnCount значение 3 и написав следующий код:
Me.ListBox1.ColumnWidths = "50;100;200"
Me.ListBox1.RowSource = Sheet1.Range("A1:C3").Address
Вы получите что-то вроде этого:
Хотите скрыть столбец? Нет проблем, измените ширину свойства ColumnWidths на ноль, чтобы столбец скрылся:
Me.ListBox1.ColumnWidths = "50;0;200" 'Hide column 2
Что хорошего в сетке, если из нее нельзя что-то выбирать?
В списке измените свойство ListStyle на frmListStyleOption, а затем измените MultiSelect на frmMultiSelect.
Это даст вам список, который больше похож на сетку:
Календарь
ОБНОВЛЕНИЕ 17.08.2012. Прочтите этот пост . Один из ответивших парней создал свой собственный элемент управления календарем.
Для Office существует элемент управления календарем (mscal.ocx):
Однако должны быть соблюдены правильные условия:
- Доступ должен быть установлен на клиентском компьютере
- Версия Office не может быть Office 2010, поскольку она была удалена вместе с этой версией (см. Функции удалено из Microsoft Access)
Вы по-прежнему можете настроить управление календарем с установками 2010 и / или без Access Office, но это требует дополнительных действий на клиентском компьютере.
- Загрузите mscal.ocx.
- Распакуйте его в каталог windows / system32
- Зарегистрируйте это
В виде дерева
Если для ваших клиентов приемлемо установить некоторые EXE-файлы, вы можете попросить их установить Общие элементы управления Microsoft Visual Basic 6.0. Это даст вам элемент управления TreeView.
Я готов поспорить, что на большинстве машин (особенно старых с Windows XP) эти OCX уже установлены; таким образом, установка может не потребоваться.
Самая большая проблема заключается в том, что вы развертываете OCX на клиентских машинах, и это расстраивает с точки зрения поддержки.
person
ray
schedule
25.07.2012