запуск формы с макросами
Создание макроса пользовательского интерфейса
В Microsoft Access макросы, присоединенные к объектам пользовательского интерфейса, таким как кнопки, текстовые поля, формы и отчеты, называются макросами пользовательского интерфейса. Это позволяет отличить их от макросов данных, которые присоединяются к таблицам. С помощью макросов пользовательского интерфейса можно автоматизировать ряд действий, таких как открытие другого объекта, применение фильтра, запуск операции экспорта и многие другие задачи. В этой статье представлен новый конструктор макросов, а также описаны основные задачи, связанные с созданием макроса пользовательского интерфейса.
Примечание: Эта статья не относится к веб-приложениям Access.
В этой статье
Общие сведения
Макросы могут содержаться в объектах макросов (такие макросы иногда называют автономными) или же внедряться в свойства событий форм, отчетов и элементов управления. Внедренные макросы становятся частью объекта или элемента управления. Объекты макроса отображаются в области навигации в группе Макросы; внедренные макросы в ней не указываются.
Каждый макрос состоит из одной или нескольких макрокоманд. В зависимости от контекста, в котором вы работаете, некоторые макрокоманды могут быть недоступны.
Построитель макросов
Вот некоторые основные возможности конструктора макроса.
Каталог действий Макро макрос у систематизованы по типу и с помощью поиска.
IntelliSense. При вводе выражений IntelliSense предлагает возможные значения и позволяет выбрать правильное значение.
Сочетания клавиш Используйте сочетания клавиш, чтобы ускорить и упростить написание макроса.
Поток программы Создавайте более понятные макросы с строками прикомментов и группами действий.
Условные выписки Разрешить более сложное выполнение логики с поддержкой вложенных если/Иначе если.
Повторное использование макроса В каталоге макроса отображаются другие макросы, которые вы создали, и вы можете скопировать их в тот, над чем вы работаете.
Простое совместное использование Скопируйте макрос, а затем вкопируйте его как XML-код в сообщение электронной почты, запись группы новостей, блог или образец кода.
Вот видеоролик, в котором вы сможете иным образом о том, как основные области конструктора макроса.
Создание автономного макроса
Данная процедура позволяет создать объект автономного макроса, который будет выводиться в списке Макросы в области навигации. Макрос полезно сделать автономным, если вы хотите повторно использовать его во многих частях приложения. Вызывая макрос из других макросов, можно избежать дублирования кода в нескольких местах.
На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.
Откроется конструктор макросов.
На панели быстрого доступа нажмите кнопку Сохранить.
В диалоговом окне Сохранение введите имя макроса, а затем нажмите кнопку «ОК».
Создание внедренного макроса
Данная процедура позволяет создать макрос, внедренный в свойство события объекта. Такие макросы не отображаются в области навигации, но их можно вызывать их событий, например Загрузка или Нажатие кнопки.
Так как макрос становится частью объекта формы или отчета, внедренные макросы рекомендуется использовать для автоматизации задач, которые относятся к конкретной форме или отчету.
В области навигации щелкните правой кнопкой мыши форму или отчет, в которые нужно добавить макрос, и выберите команду Режим макета.
Если окно свойств не отображается, нажмите клавишу F4.
Щелкните элемент управления или раздел, содержащий свойство события, в которое вы хотите внедрить макрос. Вы также можете выбрать элемент управления или раздел (либо форму или отчет целиком) с помощью раскрывающегося списка Возможен выбор в верхней части страницы свойств.
В области задач «Страница свойств» откройте вкладку Событие.
Щелкните поле свойства для события, которое должно активировать макрос. Например, если вы хотите, чтобы макрос выполнялся при нажатии кнопки, щелкните поле свойства Нажатие для кнопки.
Если поле свойства содержит слова [Внедренный макрос], это означает, что для этого события уже создан макрос. Вы можете изменить его, выполнив действия, описанные далее в этой процедуре.
Если поле содержит слова [Процедура обработки событий], это означает, что для данного события уже была создана процедура Visual Basic для приложений (VBA). Перед внедрением макроса в событие потребуется удалить процедуру. Для этого можно удалить слова [Процедура обработки событий], но сначала следует изучить процедуру, чтобы убедиться, что ее удаление не нарушит функциональность базы данных. В некоторых случаях можно воспроизвести функции процедуры VBA с помощью внедренного макроса.
Нажмите кнопку «Построить» .
Если откроется диалоговое окно Построитель, убедитесь, что выбран пункт Макросы, а затем нажмите кнопку ОК.
Откроется конструктор макросов. Перейдите к следующему разделу, чтобы добавить макрокоманды в макрос.
Добавление макрокоманд в макрос
Макрокомандами называются отдельные команды, которые образуют макрос. Имя макрокоманды отражает ее назначение, например НайтиЗапись или ЗакрытьБазуДанных.
Шаг 1. Просмотр или поиск макрокоманд
Чтобы добавить макрокоманду, прежде всего нужно найти ее в раскрывающемся списке Добавить новую макрокоманду или в каталоге макрокоманд.
По умолчанию в раскрывающемся списке Добавить новую макрокоманду и в каталоге макрокоманд выводятся только макрокоманды, которые выполняются в ненадежных базах данных. Чтобы просмотреть все макрокоманды:
На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.
Если каталог макрокоманд не отображается, на вкладке Конструктор в разделе Показать или скрыть нажмите кнопку Каталог макрокоманд.
Найти макрокоманду можно одним из следующих способов:
Щелкните стрелку раскрывающегося списка Добавить новую макрокоманду и прокрутите список вниз, чтобы найти макрокоманду. Сначала выводятся элементы управления выполнением программы, а затем — макрокоманды в алфавитном порядке.
Найдите макрокоманду в области «Каталог макрокоманд». Макрокоманды сгруппированы по категориям. Разверните категории для просмотра макрокоманд. При выборе макрокоманды в нижней части каталога выводится ее краткое описание.
Выполните поиск макрокоманды, введя текст в поле «Поиск» в верхней части области «Каталог макрокоманд». По мере ввода список макрокоманд фильтруется и в нем выводятся все макросы, которые содержат текст. Access ищет введенный текст в именах макросов и их описаниях.
Шаг 2. Добавление макрокоманды в макрос
После того как вы нашли нужную макрокоманду, добавьте ее в макрос с помощью одного из следующих способов:
Выберите макрокоманду в списке Добавить новую макрокоманду или просто начните вводить имя макрокоманды в поле. Access добавит макрокоманду туда, где отображался список Добавить новую макрокоманду.
Перетащите макрокоманду из каталога макрокоманд в область макроса. Появится полоса вставки, показывающая, куда будет вставлена макрокоманда, когда вы отпустите кнопку мыши.
Дважды щелкните макрокоманду в каталоге макрокоманд.
Если в области макроса выбрана макрокоманда, Access добавит новую макрокоманду под выбранной.
Если в области макроса выделен блок Группа, Если, Иначе если, Иначе или Вложенный макрос, Access добавит новую макрокоманду в него.
Если в области макроса не выбраны макрокоманды и блоки, Access добавит новую макрокоманду в конец макроса.
Если вы уже создали один или несколько макросов, они указаны в узле В этой базе данных каталога макрокоманд.
При перетаскивании автономного макроса (который указан в разделе Макросы) в область макроса создается макрокоманда ЗапускМакроса, которая выполняет перетащенный макрос. Затем вы можете с помощью раскрывающегося списка вызвать вложенные макросы, если они имеются.
Если вы хотите просто скопировать макрокоманды из автономного макроса в текущий (вместо того чтобы создавать макрокоманду ЗапускМакроса), щелкните его правой кнопкой мыши в каталоге макрокоманд и выберите команду Добавить копию макроса.
При перетаскивании внедренного макроса (указанного в объекте формы или отчета) в область макроса макрокоманды из него копируются в текущий макрос.
Вы также можете создать макрокоманду путем перетаскивания объекта базы данных из области навигации в область макроса. Если вы перетащите в область макроса таблицу, запрос, форму, отчет или модуль, Access добавит макрокоманду, открывающую их. При перетаскивании другого макроса в область макросов Access добавит макрокоманду, которая запускает этот макрос.
Шаг 3. Ввод аргументов
Для большинства макрокоманд требуется по крайней мере один аргумент. Чтобы просмотреть описание любого из аргументов, выделите макрокоманду, а затем наведите указатель на аргумент. Для многих аргументов вы можете выбрать значение из раскрывающегося списка. Если для аргумента требуется ввести выражения, IntelliSense помогает сделать это, предлагая возможные значения по мере ввода, как показано на рисунке ниже:
Когда появится значение, которое вы хотите использовать, добавьте его в выражение, дважды щелкнув его или выделив его с помощью клавиш со стрелками, а затем нажав клавишу TAB или ВВОД.
Дополнительные сведения о создании выражений см. в статье Введение в использование выражений.
Сведения об использовании IntelliSense со свойствами веб-базы данных
При создании макроса пользовательского интерфейса, внедренного в веб-совместимую форму, IntelliSense позволяет добавлять любые свойства формы в выражение. Однако в веб-базе данных с помощью макросов пользовательского интерфейса можно получать доступ только к некоторым свойствам формы. Например, если в форме «Форма1» есть элемент управления «Элемент1», IntelliSense позволит добавить [Формы]![Форма1]![Элемент1].[ControlSource] в выражение в макросе пользовательского интерфейса. Но если опубликовать базу данных в службах Access, макрос, содержащий выражение, будет вызывать ошибку при запуске на сервере.
В таблице ниже перечислены свойства, которые вы можете использовать в макросах пользовательского интерфейса в веб-базах данных:
Объект или элемент управления
Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits
Вызов UserForm
Вызов UserForm по условию цикла
Всем привет) Мастерю подобие БД в Excel. Вот код: Private Sub CommandButton8_Click() Dim n As.
Вызов палитры из UserForm и присвоение константе выбранного цвета
Доброго времени суток. Собственно задача и есть созданная тема. Вопрос лишь в том как это.
Userform
Решите задачь в Форме
В общем здравствуйте Anutka55.
открывать форму можно не только кнопкой но и меню, в этом сможете убедиться изучив образец.
Евгений.
Вложения
Вызов_формы.rar (10.3 Кб, 132849 просмотров) |
Вариант2: Открыть форму в процессе выполнения Вашего макроса
В Вашем макросе в месте, где нужно вызвать форму напишите
UserForm1.Show ‘Показать Вашу форму.
UserForm1.Hide ‘Скрыть Вашу форму.
хм. Мне кажется, просто момент архивации неудачно, При архивации получилась ошибка, а её не заметили..
Но в любом случае надо новый экземпляр архива.
Дело не в старости.
Пароль в userform
мозги кипят! не могу понять что не так! все работает, кроме ввода пароля. не смена, а именно ввода.
Userform с Combobox
Всем привет.Надо выполнить такую задачу,не понимаю даже как должна работать.Дело доходит только до.
Vba, userform
Не знаю как правильно записывать эти функции в VBA, подскажите народ добрый как записать 4-ую.
работа UserForm
Помогите написать код, дело в том что не могу понять как сделать. в общем нужно вывести форму в.
Запуск макроса кнопкой
Задача: в предыдущей заметке мы рассказали, как запускать макросы клавиатурными сокращениями. Можно ли для этой цели использовать кнопки на листе?
Решение: существует множество способов запустить макрос кнопкой (рис. 1).
Рис. 1. Вы можете запустить макрос с помощью любого из этих элементов
Скачать заметку в формате Word или pdf, примеры в формате Excel (с кодом VBA)
Способ 1. Элемент управления формы Кнопка
В Excel 2007 или более поздней версии перейдите на вкладку РАЗРАБОТЧИК. В области Элементы управления кликните на кнопке Вставить, в раскрывающемся списке выберите значок Кнопка (рис. 2). Перетащите значок на лист, и нарисуйте кнопку. Когда вы закончите отрисовывать кнопку, появится диалоговое окно Назначить макрос объекту. Выберите макрос и нажмите Ok.
Рис. 2. Вставка кнопки, как элемента управления формы
Примечание. Если вы не видите вкладку РАЗАБОТЧИК, пройдите по меню ФАЙЛ –> Параметры. Перейдите на вкладку Настроить ленту, и в правой части окна Параметры Excel – Основные вкладки поставьте галочку напротив Разработчик.
Кнопка по умолчанию имеет название Кнопка 1. Чтобы изменить имя: нажмите Ctrl и кликните на кнопке (это позволит сделать кнопку активной без запуска макроса). Удалите текст с названием кнопки и наберите новое название. Вы можете изменить тип и размер шрифта, выравнивание и цвет текста. Если в будущем вы захотите изменить макрос, назначенный кнопке, кликните на ней правой кнопкой мыши и выберите опцию Назначить макрос.
Способ 2. Кнопка ActiveX
Кнопка ActiveX выглядит аналогично Кнопке Элемент управления формы. При этом Кнопка ActiveX имеет более гибкий функционал. Выполните следующие шаги, чтобы создать Кнопку ActiveX.
Перейдите на вкладку РАЗРАБОТЧИК. В области Элементы управления кликните кнопку Вставить, и в раскрывшемся списке выберите значок Кнопка (рис. 3). Нажмите на пиктограмму Кнопка и перетащите ее на рабочий лист. Обратите внимание, что вы находитесь в режиме конструктора.
Рис. 3. Вставка кнопки, как элемента ActiveX
Кликните на Кнопке правой кнопкой мыши, и выберите опцию Свойства. Появится окно Properties (свойства, рис. 4). Находим строку для заголовка – Caption. Удалите текст CommandButton3 [1] и наберите Выполнить! Кнопка ActiveX. Вы также можете заменить шрифт Arial на Calibri. Вы также можете изменить внешний вид кнопки с помощью таких свойств, как BackColor и ForeColor; можете добавить изображение на кнопку (свойство Picture) и т.д. Эти особенности делают элементы управления ActiveX намного более гибкими, чем элементы управления формы. Закройте окно свойств, кликнув на крестик в правом верхнем углу.
Рис. 4. Свойства Кнопки ActiveX
Оставаясь в режиме конструктора, кликните правой кнопкой мыши, и выберите опцию Исходный текст. Вы перейдете в окно редактора VBA в процедуру Private Sub CommandButton3_Click (рис. 5). В настоящий момент процедура не выполняет никакой код (она пустая). Обратите внимание, что код «живет» не в отдельном модуле, а в листе книги.
Рис. 5. Редактирование кода VBA, ассоциированного с Кнопкой ActiveX
Вы можете написать в процедуре любой код. Если вы хотите, чтобы клик на Кнопке ActiveX запускал один из существующих макросов, просто укажите его имя в тексте процедуры (рис. 6).
Рис. 6. Процедура Private Sub CommandButton3_Click будет исполнять макрос TestMacro
Вернитесь из редактора VBA назад на лист Excel. Выйдите из режима конструктора, кликнув на одноименную кнопку на ленте.
Примечание. Сам макрос TestMacro предельно прост. Он выводит на экран окно Макрос выполнен. При этом код макроса, как и положено, размещен в модуле VBA.
MsgBox » Макрос выполнен «
Способ 3. Любая фигура, картинка, рисунок SmartArt, Clip Art
Поместите объект на лист Excel. Щелкните правой кнопкой мыши на объекте и выберите команду Назначить макрос. В окне Назначить макрос объекту выберите макрос и нажмите Ok.
Способ 4. С помощью гиперссылки
Настройка макроса для запуска с помощью гиперссылки довольно сложна, но интересна. Для начала введите какой-нибудь текст в ячейку — например, Запуск макроса гиперссылкой. Затем на вкладке ВСТАВКА выберите команду Гиперссылка, и в окне Изменение гиперссылки введите адрес ячейки, в которой введен текст. В нашем примере – это В28. Это позволит при нажатии гиперссылки остаться в ячейке.
Рис. 7. Замкните гиперссылку саму на себя
Перейдите в редактор VBA. В окне проекта (VBAProject) найдите строку с листом Excel, на котором находится гиперссылка. В нашем примере лист называется Sheet1 (Рис. 1). Кликните на этой строке правой кнопкой мыши, и выберите команду View Code (рис. 8).
Рис. 8. Код для перехвата нажатия гиперссылки должен быть расположен на листе
Откроется панель кода для листа Sheet1 (Рис. 1). Если вы ранее выполняли действия, описанные выше в разделе Способ 2. Кнопка ActiveX для запуска макроса, то вверху окна будет размещено три строчки кода (см. рис. 6). Если вы не делали этого, окно будет пустым. В любом случае, воспользуйтесь двумя выпадающими меню в верхней части окна. В левом списке выберите Worksheet, в правом – FollowHyperlink. У вас появится заготовка процедуры Worksheet_FollowHyperlink перехватывающей событие Нажатие гиперссылки (рис. 9).
Рис. 9. Настройка заготовки кода путем выбора объекта – Worksheet и события – FollowHyperlink
Каждый раз, когда кто-то нажмет вашу гиперссылку, запустится эта процедура. Целевая переменная процедуры – ByVal Target As Hyperlink – обеспечит срабатывание процедуры только когда нажата ячейка с целевым текстом. Если на странице только одна гиперссылка, вы можете ограничиться простым кодом:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Если гиперссылок несколько, вы можете использовать свойство Target.TextToDisplay, чтобы различить гиперссылки:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.TextToDisplay
Case » Run Report 2 «
Case » Run Report 2 «
Case » Run Report 3 «
Использование гиперссылки для запуска макроса – отличный трюк, когда вы хотите переключиться между различными состояниями. Возможно, вы хотите перейти от сортировки по возрастанию к сортировке по убыванию. Следующий макрос выполняет сортировку и изменяет текст гиперссылки так, что в следующий раз будет выполняться противоположная сортировка:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.TextToDisplay
Резюме: запуск макроса кнопкой может быть выполнен с помощью элементов управления формы, элементов ActiveX, фигуры SmartArt, гиперссылки и др.
[1] В процессе написания заметки я тестировал те или иные возможности, поэтому моя кнопка имеет номер 3. Если вы выполняете операцию создания Кнопки ActiveX впервые, ваша Кнопка будет иметь имя CommandButton1
1 комментарий для “Запуск макроса кнопкой”
А как сделать кнопку в таблице что бы просто при клике выходить на определенный адрес в интернете?
Как создать кнопку для вызова макроса на листе?
Но к нашему общему счастью в Excel есть замечательная возможность создавать элементы, с помощью которых можно вызвать макрос просто нажатием на них. Кроме того это можно сделать еще и красиво. В данной статье я опишу как можно сделать красивые и не очень кнопки на листе для вызова имеющихся у Вас макросов.
Итак, ниже на рисунке Вы можете видеть четыре варианта кнопочек для вызова макроса.
Кнопка элемент ActiveX
Данная кнопка считается устаревшей и не рекомендуется к использованию. Однако многие все же предпочитают использовать именно её(либо не знают, что можно по-другому). Так же назначить для этой кнопки макрос кому-то покажется сложнее, чем для остальных, рассматриваемых в данной статье. Как создать такую кнопку:
Private Sub CommandButton1_Click() Call Макрос1 End Sub
А вот на этом, пожалуй, все для данного элемента.
Для остальных элементов принцип назначения макроса одинаков, а поэтому сначала рассмотрим создания каждого из них, а после уже способ назначения макроса
Появится диалоговое окно выбора макросов. Выбираете нужный и жмете Ок. Все, наша кнопка готова и по её нажатии выполняется выбранный нами макрос.
рис.1
Таким же образом можно назначить макрос не только указанным элементам, но и Диаграмме, элементу Надпись, обекту WordArt, рисунку SmartArt.
Статья помогла? Поделись ссылкой с друзьями!
Создание макроса, который запускается при открытии базы данных
Если каждый раз при запуске базы данных Access требуется выполнять определенный набор действий, можно создать макрос AutoExec. Например, так вы можете автоматически развернуть окно приложения, заблокировать область навигации и открыть определенный отчет.
Макрос AutoExec — это просто макрос с именем AutoExec. При открытии базы данных приложение Access выполняет его раньше любых других макросов или кода VBA.
Создание макроса AutoExec
Если макрос с действиями, которые должны выполняться при запуске базы данных, уже создан, просто измените его имя на AutoExec, и он будет запущен при следующем открытии базы данных. В противном случае выполните для создания макроса указанные ниже действия.
Откройте вкладку Создание и в группе Другие нажмите кнопку Макрос.
Выберите макрокоманду в раскрывающемся списке в верхней части конструктора. При необходимости укажите значения в полях аргументов.
Если не удается найти нужную макрокоманду, убедитесь, что на вкладке Конструктор в разделе Показать или скрыть установлен флажок Показать все макрокоманды. При установке этого флажка список доступных действий расширяется, но он будет содержать некоторые действия, которые могут выполняться, только если база данных признана доверенной. Дополнительные сведения см. в статье Вопрос о доверии базе данных.
Повторите действие 2 для каждого из дополнительных действий.
Нажмите кнопку Сохранить. В диалоговом окне Сохранить как введите имя AutoExec.
Нажмите кнопку ОК и закройте конструктор макросов. Новый макрос будет выполнен при следующем открытии базы данных.
Дополнительные сведения о создании макросов см. в статье Создание макроса пользовательского интерфейса.
Чтобы не использовать макрос AutoExec и другие параметры загрузки, удерживайте нажатой клавишу SHIFT во время запуска базы данных. Дополнительные сведения см. в статье Обход параметров запуска при открытии базы данных.
Для выполнения действий при запуске базы данных можно также указать начальную форму и назначить макросы или код VBA ее событиям OnOpen и OnLoad. Дополнительные сведения см. в статье Назначение формы, которая появляется по умолчанию при открытии базы данных Access.