На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Как найти имя элемента управления формы?
    В Excel 2010 на лист добавил CheckBox, но неясно как найти его имя чтобы программно к нему обращаться.
      Какой чекбокс?
      если из ActiveX, то в поле имён видно имя
      Прикреплённый файлПрикреплённый файл______________.png (15,43 Кбайт, скачиваний: 453)
        А в чем отличие "Элементы управления формы" и Элементы ActiveX? Что использовать?
        Прикреплённый файлПрикреплённый файлex1.png (23,7 Кбайт, скачиваний: 457)
        ?
          ^D^ima
          Первое - через объектную библиотеку Excel, встроенные, второе - напрямую.
          См. например, вот это.
          Первые - гарантированно имеются на любой рабочей станции, где установлен Excel, но дубовые, часть пропертей, методов и эвентов может отсутствовать.
          Вторые - гибче, но приходится контролировать их существование (и порой версию) при переносе на другую станцию.
            Как достучаться до пропертей тогда, проверить на cheked например? Почему нет элемента в списке? Нет ни Флфжек1 ни CheckBox1 :wacko:
            Прикреплённый файлПрикреплённый файлvba.png (51,14 Кбайт, скачиваний: 445)
              Цитата ^D^ima @
              Как достучаться до пропертей тогда, проверить на cheked например?

              Как обычно, нажать F2 в редакторе VBA и посмотреть свойства и методы нужного объекта из нужной библиотеки.
              Но если Intellisecnce после точки в списке доступных не показывает нужное свойство или метод - то его у объекта и нет.
              Сообщение отредактировано: Akina -
                Цитата
                Почему нет элемента в списке?

                значит ты используешь формы
                к ним обращаться и проверять свойства сложней
                через shapes( имя_шара).object.object. - как-то так
                лучше ИМХО ActiveX использрвать

                Добавлено
                Цитата
                после точки в списке доступных не показывает нужное свойство или метод

                а вот это совсем не факт! После точки ексел показывает намного меньше свойств чем не показывает!

                Добавлено
                к форме обращение так:
                ExpandedWrap disabled
                   t = Лист1.Shapes("Флажок 1").OLEFormat.Object.Value

                если флаг установлен = 1
                иначе = -4146
                  Цитата alex77755 @
                  ИМХО ActiveX использрвать

                  А как к объектам ActiveX обращаться?
                    Просто по имени
                    ExpandedWrap disabled
                       t = Лист1.CheckBox1.Value

                    Значения соответственно True и Fakse
                    Сообщение отредактировано: alex77755 -
                      ^D^ima, К родному флажку (тому, что на скриншоте) обращаться несложно :

                      ExpandedWrap disabled
                        Dim ck As CheckBox
                        Set ck = Лист1.CheckBoxes(1) 'ActiveSheet.CheckBoxes("Флажок 1")
                        t = ck.Value


                      P.S. Можно, разумеется, обойтись и без переменной, но так нагляднее :)
                      Сообщение отредактировано: pashulka -
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0312 ]   [ 22 queries used ]   [ Generated: 29.03.24, 00:33 GMT ]