Элементы управления activex в excel
В этом разделе описывается конкретная информация об использовании ActiveX элементов управления на листах и таблицах. Общие сведения о добавлении и работе с элементами управления см. в ActiveX элементы управления документом и создание настраиваемого диалогового окна.
Помните о следующих моментах при работе с элементами управления на листах:
В дополнение к стандартным свойствам, доступным для элементов управления ActiveX, следующие свойства можно использовать с ActiveX управления в Microsoft Excel: BottomRightCell, LinkedCell, ListFillRange, Размещение, PrintObject, TopLeftCell и ZOrder.
Эти свойства можно настроить и вернуть с помощью ActiveX имени управления. В следующем примере прокручивается окно книги, поэтому CommandButton1 находится в верхнем левом углу.
Некоторые Microsoft Excel Visual Basic и свойства отключены при активации ActiveX управления. Например, метод Sort не может использоваться при активном контроле, поэтому следующий код не работает в процедуре события нажатием кнопки (так как управление по-прежнему активен после нажатия пользователем).
Эту проблему можно решить, активировав другой элемент на листе перед использованием сбойного свойства или метода. Например, в следующем коде сортировать диапазон:
Элементы управления Microsoft Excel, встроенные в документ в другом приложении, не будут работать, если пользователь дважды щелкает книгу для ее редактирования. Элементы управления будут работать, если пользователь правой кнопкой мыши на книгу и выбирает команду Open из меню ярлыка.
Если Microsoft Excel книга сохранена с Microsoft Excel формата файла 5.0/95, ActiveX сведения о ActiveX управления.
Ключевое слово Me в процедуре события для ActiveX на листе ссылается на лист, а не на управление.
Добавление элементов управления Visual Basic
В Microsoft Excel ActiveX элементы управления представлены объектами OLEObject в коллекции OLEObjects (все объекты OLEObject также находятся в коллекции Shapes). Чтобы программным образом добавить ActiveX в лист, используйте метод Add из коллекции OLEObjects. В следующем примере добавляется кнопка команды в таблицу 1.
Использование свойств управления с помощью Visual Basic
Чаще всего в Visual Basic код будет ссылаться на ActiveX по имени. В следующем примере изменяется подпись на контроле с именем "CommandButton1".
Обратите внимание, что при использовании имени управления за пределами модуля класса для листа, содержащего управление, необходимо квалифицировать имя управления с именем листа.
Чтобы изменить имя управления, используемое в коде Visual Basic, выберите управление и установите свойство (Имя) в окне Свойства.
Поскольку ActiveX элементы управления также представлены объектами OLEObject в коллекции OLEObjects, можно установить свойства управления с помощью объектов в коллекции. В следующем примере устанавливается левая позиция управления с именем "CommandButton1".
Свойства управления, которые не показаны в качестве свойств объекта OLEObject, можно установить, вернув фактический объект управления с помощью свойства Object. В следующем примере заголовок для CommandButton1.
Так как все объекты OLE также являются членами коллекции Shapes, вы можете использовать коллекцию для набора свойств для нескольких элементов управления. В следующем примере приведен левый край всех элементов управления на таблице 1.
Использование имен управления в коллекциях Shapes и OLEObjects
Элемент ActiveX на листе имеет два имени: имя фигуры, содержа которой содержится элемент управления, который можно увидеть в поле Имя при просмотре листа, и кодовое имя элемента управления, которое можно увидеть в ячейке справа от (Имя) в окне Свойства. При первом добавлении в лист управления совпадают имя фигуры и кодовое имя. Однако, если вы измените имя фигуры или кодовое имя, другое не будет автоматически изменено в соответствие.
Кодовое имя управления используется в именах процедур событий. Однако при возвращении управления из коллекции Shapes или OLEObjects для листа необходимо использовать имя фигуры, а не кодовое имя, чтобы сослаться на управление по имени. Например, предположим, что к листу добавляется чековое окно, а имя фигуры по умолчанию и кодовое имя по умолчанию — CheckBox1. Если затем изменить имя кода управления, введя chkFinished рядом с (Name) в окне Свойства, необходимо использовать chkFinished в именах процедур событий, но для возврата управления из коллекции Shapes или OLEObject, как показано в следующем примере, необходимо использовать CheckBox1.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Благодаря формам, а также многочисленным элементам управления и объектам, которые можно в них добавить, значительно упрощается ввод данных в листы и улучшается их внешний вид. Вы также можете делать это самостоятельно, и вам почти или совсем не потребуется код Microsoft Visual Basic для приложений (VBA).
Форма листа и шаблон Excel — это не одно и то же. Шаблон — это предварительно отформатированный файл, который служит отправной точкой для создания книги с требуемым оформлением. Форма содержит элементы управления, такие как поля и раскрывающиеся списки, упрощающие ввод и изменение данных для использующих ваш лист. Дополнительные информацию о шаблонах, которые можно скачать, см. в Excel шаблонов.
Общие сведения о формах
Форма (печатная или веб-версия) — это документ со стандартной структурой и форматированием, который упрощает сбор, у упорядочение и редактирование сведений.
Печатаемая форма содержит инструкции, форматирование, наклейки и пустые пробелы для ввода и ввода данных. Для создания печатных Excel и Excel шаблонов.
Веб-формы содержат те же функции, что и печатные формы. Кроме того, веб-формы содержат элементы управления. Элементы управления — это объекты, которые отображают данные или упрощают ввод или изменение данных, выполнение действия или выбор данных. Как правило, элементы управления упрощают работу с формой. Примерами часто используемых элементов управления являются списки, переключатели и кнопки. Элементы управления также могут запускать назначенные им макросы и реагировать на события, например щелчки мышью, путем выполнения кода Visual Basic для приложений (VBA).
Создавать печатные Excel веб-формы можно несколькими способами.
Типы форм Excel
В Excel можно создавать формы нескольких типов: формы данных, листы с элементами управления формы и ActiveX, а также пользовательские формы VBA. Каждый из этих типов формы можно использовать по отдельности или сочетать с другими типами для создания нужного решения.
Форма данных
форма данных предоставляет удобный способ ввода или отображения одной строки данных из диапазона или таблицы, не требующий применения горизонтальной прокрутки. Использовать форму данных может быть проще, чем перемещаться между столбцами, которых слишком много для одновременного отображения на экране. Форму данных можно применять тогда, когда достаточно простой формы с текстовыми полями, в качестве подписей которых используются заголовки столбцов, и когда не требуются сложные или пользовательские возможности, например списки и счетчики.
Excel может автоматически создать встроенную форму данных для диапазон или таблица. Такая форма представляет собой диалоговое окно, в котором все заголовки столбцов отображаются в виде подписей. Каждой подписи соответствует текстовое поле, в которое можно вводить данные для столбца (максимальное количество столбцов — 32). В форме данных можно вводить новые строки, находить строки путем навигации или (на основе содержимого ячейки) обновлять строки и удалять их. Если ячейка содержит формула, ее результат отображается в форме данных, но саму формулу в форме данных изменить нельзя.
Лист с формой и элементами ActiveX
Этот тип формы позволяет вводить и просматривать данные в сетке. Кроме того, на Excel уже встроены некоторые функции, похожие на элементы управления, такие как приметки и проверка данных. Ячейки напоминают текстовые поля, которые можно вводить и форматированием различными способами. Ячейки часто используются в качестве подписей, и благодаря регулировке высоты и ширины ячеек, а также объединению ячеек можно настроить поведение таблицы как простую форму для ввода данных. Другие функции управления, такие как приметки к ячейкам, гиперссылки, фоновые изображения, проверка данных, условное форматирование, внедренные диаграммы и автофайл, могут привести к работе с таблицами как к расширенным формам.
Для большей гибкости вы можете добавлять элементы управления и другие объекты-рисунки полотно на полотно, а также объединять и координировать их с ячейками. Например, с помощью списка можно упростить выбор элементов в списке. Кроме того, можно упростить ввод номера с помощью счетчика.
Элементы управления и объекты хранятся на полотне, и поэтому их можно отображать и просматривать одновременно со связанным текстом, не зависящим от границ строк и столбцов, без изменения макета сетки или таблицы данных на листе. В большинстве случаев многие из этих элементов управления можно также связать с ячейками на листе, а для их нормальной работы не требуется создавать код VBA. Можно задать свойства, определяющие, является ли элемент управления свободно перемещаемым или перемещается и изменяет размеры вместе с ячейкой. Например, может потребоваться, чтобы флажок перемещался вместе со связанной ячейкой при сортировке диапазона. С другой стороны, если нужно, чтобы список всегда отображался в одном и том же месте, нежелательно, чтобы он перемещался вместе с ячейкой.
В Excel поддерживаются два типа элементов управления: элементы управления форм и элементы ActiveX. Кроме этих наборов элементов управления, вы также можете добавлять объекты из средств рисования, такие как автофигуры, объект WordArt, графические элементы SmartArt или текстовые поля.
В следующих разделах более подробно описываются элементы управления и средства рисования, а также работа с ними.
Элементы управления формы
Элементы управления формы появились в Excel раньше всего и поддерживаются в предыдущих выпусках Excel (начиная с версии 5.0). Их также можно использовать на листах макросов XLM.
Элементы управления формы используются, если вы хотите легко ссылаться на данные ячеок и взаимодействовать с ними, не используя код VBA, а также добавлять их на листы диаграмм. Например, после добавления элемента управления "список" на лист и связывания его с ячейкой можно вернуть числовые значения для текущего положения выбранного элемента управления. Затем можно использовать это число в сочетании с функцией ИНДЕКС для выбора различных элементов в списке.
С помощью элементов управления формы можно также выполнять макросы. Можно назначить элементу управления существующий макрос либо создать или записать новый. Когда пользователь формы щелкает элемент управления, запускается макрос.
Однако эти элементы управления невозможно добавить в пользовательские формы, использовать для управления событиями или изменить для запуска веб-сценариев на веб-страницах.
В наших статьях мы подробно рассмотрим практические примеры, связанные с использованием программирования, которое заложено в Microsoft Office. Оно основывается на языке VBA, название которого в полном виде выглядит так Visual Basic for Application. Учитывая, что все рассматриваемые разработки будут использовать VBA, наша первоочередная задача познакомиться сданным языком.
Примеры этой темы предназначены для категории читателей, которая либо с VBA не встречалась, либо это знакомство было весьма поверхностным. Все последующие главы будут полностью посвящены рассмотрению практических офисных задач, и, таким образом, эта статья является для них базовой.
Рис. 1.4. Закладка Основные окна Параметры Excel
Предполагается, что читатель хотя бы в незначительной степени знаком с чисто пользовательскими возможностями Microsoft Excel прошлых версий. Важно отметить, что наибольший эффект будет наблюдаться, если запустить Microsoft Excel параллельно с чтением наших статей и выполнять все описанные разработки на компьютере. При рассмотрении примеров на протяжении всего изучения нам понадобятся элементы ActiveX, которые по-другому можно назвать Элементы управления.
И в качестве первого шага необходимо в окне, показанном на рис. 1.2, щелкнуть кнопкой Параметры Excel. В результате перед вами откроется новое окно с набором закладок. Здесь на закладке Основные следует сделать установку для отображения на ленте вкладки Разработчик, что реализуется с помощью флажка Показывать вкладку «Разработчик» на ленте (рис. 1.4).
В Microsoft Excel элементы ActiveX можно размещать и на пользовательских формах, и на самих рабочих листах (на верхнем графическом слое, где располагаются рисунки, диаграммы и другие объекты). Часто вставка нескольких элементов ActiveX значительно упрощает работу с данными на рабочем листе. Все элементы управления делятся на две группы: элементы управления формами и элементы управления ActiveX. Оба набора элементов управления имеют свои преимущества и недостатки. В общем случае элементы управления формами проще в применении, но зато элементы ActiveX являются более гибкими. В наших примерах мы будем использовать исключительно элементы ActiveX.
В результате окно приложения Microsoft Excel дополнится новыми пиктограммами, которые нам потребуются в дальнейшем (рис. 1.5). Среди тех, которыми мы будем активно пользоваться на протяжении всей книги, отметим пиктограмму с надписью Вставить. С се помощью на рабочем листе можно размещать элементы ActiveX, которые существенно дополняют функциональность книг Microsoft Excel. Они типичны для различных приложений Windows (речь идет о кнопках, полосах прокрутки, текстовых окнах, переключателях, списках и т. д.). Кроме пиктограммы Вставить мы будем активно пользоваться и другими присутствующими на ленте Режим конструктора, Свойства, Visual Basic и Макросы.
Перед тем как начать какие-либо действия с тем или иным элементом ActiveX, его необходимо поместить на рабочий лист. Это легко выполнить, если воспользоваться пиктограммой Вставить. На рис. 1.6 показано размещение на рабочем листе элемента ActiveX Кнопка.
Рис. 1.5. Отображение вкладки Разработчик на ленте
При наведении курсора мыши на пиктограмму элемента ActiveX Кнопка в качестве подсказки появляется еще один вариант его названия: элемент управления «Кнопка». Далее по тексту мы будем использовать оба варианта названия — элементы ActiveX и элементы управления.
Для того чтобы перенести элемент ActiveX на рабочий лист, необходимо щелкнуть на панели инструментов на его пиктограмме левой кнопкой мыши и далее переместить курсор мыши на рабочий лист. Курсор мыши примет вид, аналогичный математическому знаку «плюс». Теперь следует нажать левую кнопку мыши и, не отпуская ее, переместить мышь вправо и вниз, а затем отпустить ее левую кнопку. В результате на рабочем листе мы увидим изображение появившегося элемента ActiveX, окруженного маркерами (рис. 1.6).
Рис. 1.6. Размещение кнопки на рабочем листе в режиме конструктора
После размещения элемента ActiveX на рабочем листе активизируется кнопка Режим конструктора, которая позволяет пользователю далее работать в одном из двух режимов. Один из них так и называется режим конструктора. В этом случае можно работать с элементами ActiveX для создания необходимого интерфейса на рабочем листе. Также в этом режиме пользователю предоставляется возможность создавать программные разработки.
Появление маркеров (см. рис. 1.6), окружающих элемент ActiveX, как раз и является признаком того, что мы работаем в режиме конструктора (кнопка Режим конструктора в этом случае выглядит нажатой). На начальном этапе создания разработки работа в режиме конструктора сводится к размещению элементов управления на рабочем листе и изменению их свойств. Далее производится программирование различных событий, связанных с элементами управления, листами и книгой в целом.
Важно отметить, что после размещения элемента ActiveX на рабочем листе, в нашей книге (можно даже сказать — на данном листе книги) появился новый элемент, который фактически представляет собой «программный» объект. Аналогичным образом на рабочих листах книг Excel можно размещать и другие элементы ActiveX.
Рис. 1.7. Вид рабочего листа при выходе из режима конструктора
Другой режим можно назвать режимом выполнения или режимом работы (какого-то однозначно принятого названия не существует). Чтобы перейти в этот режим (то есть выйти из режима конструктора), необходимо отжать кнопку Режим конструктора (рис. 1.7). После этого в нашем случае можно просто пощелкать кнопкой, которую мы создали на рабочем листе (функциональные действия, которые можно обеспечить в этом случае, мы рассмотрим в дальнейшем). Далее опять вернемся в режим конструктора. С помощью маркеров, окружающих кнопку, можно легко изменить се размеры. Также с помощью мыши можно перемещать созданную кнопку по рабочему листу.
Теперь вставить элемент управления можно через меню: Разработчик/ Элементы управления/ Вставить .
Обратите внимание, что в этом меню можно также вставить Элементы ActiveX, которые расположены ниже интересующих нас Элементов управления формы. У обоих типов есть одни и те же элементы Кнопка, Список , Флажок и т.п. Разница между ними следующая: чтобы использовать Элементы ActiveX необходимо использовать VBA, а Элементы управления формы можно напрямую привязать к ячейке на листе.
Список ( List box ) как, впрочем и все другие Элементы управления формы, возвращает только 1 числовое значение (если Вы не планируете использовать VBA). См. файл примера .
Обзорную статью обо всех элементах управления формы можно прочитать здесь .
Вставка Списка
Через меню Разработчик/ Элементы управления/ Вставить выберем левой клавишей мыши элемент Список (см. рисунок выше).
После этого выпадающее меню закроется, а курсор вместо обычного толстого крестика
превратится в тонкий крестик.
Кликнув левой клавишей мыши в нужное место на листе, элемент Список будет помещен на лист.
Выделение списка
Чтобы выделить Список нажмите и удерживайте клавишу CTRL , затем кликните левой клавишей на Список .
Перемещение Списка и изменение его размеров
Если навести курсор на выделенный Список (курсор примет форму 4-х направленных в разные стороны стрелок), затем нажать и удерживать левую кнопку мыши, то можно его переместить. Удерживая клавишу ALT можно выровнять Список по границам ячеек. Выделенный Список также можно перемещать стрелками с клавиатуры.
Если навести курсор на углы прямоугольника или на маленькие кружки на границе, то можно изменить его размер.
Заполняем Список элементами
Заполним наш Список названиями месяцев. Для начала разместим названия месяцев на листе в диапазоне F2:F13 .
Чтобы заполнить С писок , кликните на него ПРАВОЙ клавишей мыши, в появившемся контекстном меню выберите Формат объекта. Появится диалоговое окно, выберите вкладку Элемент управления (если такая вкладка отсутствует, то Вы вставили Элемент ActiveX, а не Элемент управления формы, об этом см. выше).
Введите в поле Формировать список по диапазону ссылку на вышеуказанный диапазон.
Примечание . Вместо указания ссылку на диапазон можно указать Имя диапазона (т.е. ссылку на Именованный диапазон ).
Нажмите ОК, Список заполнится элементами.
Теперь пользователь может выбрать требуемый месяц, но Список пока не способен вернуть выбранное значение в ячейку. О том, как связать Список с ячейкой читайте ниже.
Связываем Список с ячейкой
Как было сказано выше, все Элементы управления формы возвращают значение. Это значение помещается в ячейку определенную пользователем. Чтобы связать Элемент управления с ячейкой, кликните на него ПРАВОЙ клавишей мыши, в появившемся контекстном меню выберите Формат объекта. Появится диалоговое окно, выберите вкладку Элемент управления (если такая вкладка отсутствует, то Вы вставили Элемент ActiveX, а не Элемент управления формы, об этом см. выше).
В поле Связь с ячейкой нужно ввести ссылку на ячейку. Свяжем наш Список с ячейкой А1 .
Необходимо убедиться, что установлен выбор только одинарного значения , т.к. только в этом случае Список будет возвращать значение в связанную ячейку (множественный выбор значений требует использования VBA). Нажмите ОК.
Существует и другой способ связать Элемент управления и ячейку: выделите правой клавишей мыши Элемент управления, в Строке формул введите =, затем кликните левой клавишей мыши на нужную ячейку, нажмите клавишу ENTER . Чтобы изменить ячейку, с которой связан Элемент управления, достаточно перетащить эту ячейку в нужное место, взяв за ее границу.
Использование Списка
Список удобен для выбора нужного значения из заранее подготовленного списка. Выбранное значение может быть использовано для вывода соответствующих значений из той же строки. Например, если в таблице продаж содержатся объемы продаж по месяцам (диапазон F2:G13 на рисунке ниже), то выбирая в Списке месяц, можно вывести соответствующий объем продаж (см. ячейку В3 ).
Необходимо помнить, что Список возвращает в связанную ячейку не сам элемент, а его позицию в списке (для апреля на картинке выше Список вернул значение 4). Поэтому, чтобы вывести выбранный месяц, потребуется формула =ИНДЕКС(F2:F13;B1) (ячейка В2 ).
Формула =ИНДЕКС(G2:G13;B1) позволяет вывести объем продаж для выбранного месяца (ячейка В3 ).
Условное форматирование использовано для отображения в таблице выбранного месяца и его продаж.
Имя Элемента управления
У каждого Элемента управления есть имя. Чтобы его узнать, нужно выделить С писок , в Поле имя будет отображено его имя. Чтобы изменить имя Списка - введите в Поле имя новое имя Списка и нажмите клавишу ENTER . Также имя можно изменить в Области выделения ( Главная / Редактирование/ Найти и выделить/ Область выделения ).
Зачем нам знать имя элемента управления? Если Вы не планируете управлять Списком из программы VBA, то имя может потребоваться только для настройки его отображения на листе. Об этом читайте ниже.
Прячем Список на листе
Включите Область выделения ( Главная / Редактирование/ Найти и выделить )
В Области выделения можно управлять отображением не только Элементов управления, но и других объектов на листе, например рисунков.
Нажмите на изображение глаза напротив имени объекта и объект исчезнет/ появится.
Читайте также: