Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Excel 2007 & ComboBox Добавлено: 12.11.08 06:50  

Автор вопроса:  AxeL | ICQ: 264730390 
Создаю на листе ComboBox. Excel создает его как объект Shape.
Вопрос: какие у Shape есть свойства, которые бы могли возвратить значение, выбранное пользователем?

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #1 Добавлено: 12.11.08 16:43
В 2003'ем Excel есть две панели инструментов: Control Toolbox и Forms. Контроллерам, выбранных на панели Forms, можно назначить макрос.
А в семёрке там бред какой-то с этим. Я помню, до того, как я его удалил в виду его безнадёжности, я тоже не мог въехать... так и забил на 2007...

Ответить

Номер ответа: 2
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #2 Добавлено: 13.11.08 03:46
Так весь фокус в том, что макрос назначить можно, но что обрабатывать? Какое свойство объекта?

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 13.11.08 08:33
Наверное есть там что-то типа .ListIndex или Value или что-то такое по смыслу. Я ни разу не ставил этот офис. Но рецепт общий: открываем справку, смотрим на объектную можель и медитируем ;)

Ответить

Номер ответа: 4
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #4 Добавлено: 14.11.08 02:24
Искал свойства Value или Text в объектной модели - не нашел...
ListIndex попозже посмотрю, тогда и отпишу...

Ответить

Номер ответа: 5
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #5 Добавлено: 19.11.08 05:13
Нет ничего подобного.
Вопрос на засыпку:
Как можно просмотреть все ДОСТУПНЫЕ свойства в данный момент для данного объекта?

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 19.11.08 09:24
В всплывающем диалоге "Свойства", который в режиме конструктора можно вызвать из контекстного меню контрола (если он создавался из панельки VBA). И ещё можно в браузере объектов и в контексте кода в VBE. Так было во всех офисах с 97 до 2003 (2007 не видел).

Ответить

Номер ответа: 7
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #7 Добавлено: 20.11.08 02:52
Объект создавался на листе, т.е. не с панельки VBA. В браузере объектов смотрел и пытался перебрать все по очереди - так он к половине свойств говорит, что они не поддерживаются данным объектом...
Пробовал подобрать конструкцию по перебору свойств на подобие этой...
  1. For Each par In Sheets("Лист1").Shapes("Combo_Box"). '?что перебирать Collections, Parameters или еще что-то?
  2. MsgBox par.Value
  3. Next

Ответить

Номер ответа: 8
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #8
Добавлено: 20.11.08 08:36
Браузером объектов надо отсеивать всё, кроме самого ComboBox - там все свойства будут поддерживаться объектом. Браузером надо уметь пользоваться.

  1. Option Explicit
  2.  
  3. Sub ComboProp()
  4.     Dim cbo As MSForms.ComboBox
  5.     Set cbo = ThisWorkbook.Worksheets(1).ComboBox1
  6.     cbo. 'Здесь после '.' нажми [Ctrl]+[J] - будет список...
  7.     Set cbo = Nothing
  8. End Sub

Ответить

Номер ответа: 9
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #9 Добавлено: 21.11.08 04:07
Ура! нашел решение!!!
  1. Dim obj As Shape
  2. Set obj = Sheets("Лист1").Shapes("Combo_Box")
  3. MsgBox obj.ControlFormat.ListIndex
  4. Set obj = Nothing

Всем спасибо, тему можно закрывать.

PS Как все-таки мелкомягкие перемудрили с этими новыми формами.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам