Содержание
- Как сделать всплывающее сообщение в эксель
- Как сделать всплывающую подсказку?
- Где находится?
- Настройка условия проверки
- Всплывающая подсказка ячейки Excel
- Подсказки в MS Excel
- Проверка по числу введенных символов
- Проверка по числу
- Выбор из имеющегося списка значений
- Как сделать всплывающую подсказку?
- Автоматически открывать определенные книги при следующем запуске Excel
Как сделать всплывающее сообщение в эксель
Изучим простой способ добавления всплывающей подсказки в Excel при вводе данных в ячейку.
Одним из элементов упрощения ввода данных пользователем является добавление всплывающей подсказки, которая появляется при активации конкретной ячейки.
Это позволяет минимизировать возможность ошибки при вводе, а также напоминает какие конкретно данные необходимо ввести в ячейку.
Как сделать всплывающую подсказку?
Чтобы сделать всплывающую подсказку для ячейки выберем на панели вкладок Данные -> Работа с данными -> Проверка данных и в открывшемся окне перейдем в центральную вкладку:
Во время работы с большими объемами информации, особенно когда ее обработка осуществляется формулами или макросами, важно, чтобы данные не имели ошибок, которые способны повлиять на итог. Сложности в получении корректных исходников появляются, когда они поступают из неструктурированных источников (плохо спроектированные базы данных, ручное заполнение таблиц и форм незаинтересованными в результате людьми). Особенно трудно добиться правильного оформления по определенной маске (шаблону). Например, дату в виде строки можно записать несколькими способами:
- 01.01.2001;
- 01/01/2001;
- 1 января 2001 года и т.д.
В статье описывается функционал, позволяющий упростить процесс сбора и проверки данных в Excel.
Где находится?
На экране появиться окно с настройками по умолчанию, где в качестве типа данных может быть использовано любое значение:
Настройка условия проверки
Изначально требуется выбрать тип проверяемых данных, что будет являться первым условием. Всего предоставлено 8 вариантов:
- Целое число;
- Действительное число;
- Список;
- Дата;
- Время;
- Длина текста;
- Другой.
Самым необычным видом является выпадающий список.
Он позволяет выбирать значения, указанные в качестве источника и ограничивать допустимые значения им же. Также возможно создавать динамические выпадающие списки.
Всплывающая подсказка ячейки Excel
Пример всплывающей подсказки в Excel:
Предупреждение более лояльно в сравнении с остановом, так как позволяет оставлять значение, не соответствующее условиям проверки, после подтверждения ввода пользователем.
Пример вывода одной и той же ошибки, но под разными видами:
У Вас недостаточно прав для комментирования.
К счастью они делают это не со зла, и все что нужно нам — разработчикам, снабдить их подсказками и уже готовыми заранее ответами. Как это сделать, я расскажу в этой статье.
Вот и моя демонстрационная excel-таблица. Как её заполнять?
Подсказки в MS Excel
Первый способ вставки подсказки
Самый проcтой способ вставить примечание в лист MS Excel
Самое простое, это щелкнуть по нужной ячейке правой кнопкой мыши и выбрать пункт «Вставить примечание«. В появившемся поле достаточно написать требуемый текст, и если пользователь поднесет курсор мыши к этой ячейке, текст немедленно появится во всплывающей подсказке.
Обратите внимание: ячейка с примечанием помечена особым значком — маленьким красным треугольником в правом верхнем углу. Сам же текст примечания может быть отформатирован как любой другой — вы можете сделать его жирным или курсивным, чтобы подчеркнуть особо важные моменты своего послания.
Удалить примечания можно только из контекстного меню правой кнопки мыши
Второй способ вставки подсказки
Ещё один способ ввести подсказку интересен нам только с точки зрения того, о чем пойдет разговор дальше (фильтрации ввода), тем не менее знать о нем полезно.
Примечания в Excel с помощью проверки данных
Проверка по числу введенных символов
Проверка по числу введенных символов в MS Excel
Слишком длинный текст! Excel стоит на страже и не пропустит такой очевидной ошибки
Проверка по числу
Ещё один хороший способ фильтрации который пригодится без сомнения: фильтрация по числу. Установите фильтр подобный указанному на рисунке и навсегда избавьтесь от проблем с тем, что в поле цена появляются буквы, пробелы и лишние символы.
Проверка по числу в Excel
Фильтрация на ввод чисел работает ничуть не хуже
Выбор из имеющегося списка значений
Самая мощная и интересная проверка ввода в MS Excel — выборка из выпадающего списка. Она подойдет не для всех типов ячеек, но там где нужна точность, а диапазон значений не слишком велик, выборка по списку это то что надо.
А теперь, сделаем проверку по выпадающему списку в MS Excel. Данные введем вручную, через точку с запятой.
…или выберем из диапазона
Выбор из списка на листе MS Excel. Других данных ввести не удастся.
Вот и готово — теперь заполнить ячейку можно лишь теми значениями, что мы указали в списке. При попытке ввести данные вручную, MS Excel выдаст нам уже знакомую ошибку.
Примечания в Excel — удобная штука. Только, чтобы отобразить примечание, нужно навести на его ячейку указатель мыши. А как сделать подсказку, которая будет всегда появляться при выборе ячейки — неважно, мышкой или стрелками?
Такая необходимость может возникнуть, например, при заполнении больших таблиц — чтобы не потеряться на просторах данных, можно включить в подсказку заголовки соответствующей строки и столбца. Или блок ячеек используется в качестве исходных данных для документа — и нужно дать необходимые пояснения для правильного заполнения.
Такую возможность даёт инструмент Excel «Проверка данных«.
Неактивная подсказка внешне не заметна. А при выборе ячейки с подсказкой, рядом появляется симпатичное окошечко с текстом пояснения.
Если подсказки содержат, к примеру, данные из заголовков строк и/или столбцов таблицы и их нужно часто менять, можно написать несложный макрос, который будет это делать за Вас.
Сегодня хочу поделиться одним маленьким приемом, который поможет сделать удобные и красивые подсказки к ячейкам:
На создание такой подсказки меня навел однажды вопрос на одном из форумов — как можно сделать удобный перевод текста из ячейки, чтобы он показывался при наведении на ячейку мышью? Не выделении — именно наведении. Можно использовать примечания(вкладка Рецензирование -Создать примечание). Но в случае с примечаниями есть несколько не очень удобных моментов: размеры примечания придется подгонять для каждой подсказки отдельно; примечания как правило будут показываться справа от ячейки, а не чуть ниже; при большом количестве примечаний файл может значительно увеличиться в размерах и некоторые возможности будут мешать их корректному отображению(например, если закрепить области, то примечание может и съехать и «срезаться»). Первое, что пришло в голову — а что если сделать как в гиперссылках (Что такое гиперссылка?)? Если точнее — что если именно эти подсказки использовать? Но как же тогда делать гиперссылку? Куда? Все просто — я решил, что можно создать гиперссылку на ячейку, в которой сама гиперссылка. Тогда даже при нажатии на ячейку с гиперссылкой нас никуда не перекинет. Я покажу как это можно сделать вручную и как это можно сделать при помощи кода VBA.
Для начала немного об исходных данных. У нас есть лист с ячейками, в которых надо создать подсказки и есть лист «справочник», в котором указано для каких значений какие должны быть подсказки.
РУЧНОЕ СОЗДАНИЕ ПОДСКАЗКИ
Выделяем ячейку, подсказку для которой хотим создать -правый клик мыши -Гиперссылка (Hyperlink). Откроется окно добавления гиперссылки.
Выбираем местом в документе
Введите адрес ячейки — указываем адрес той ячейки, в которой хотим создать подсказку
Или выберите место в документе — указываем тот лист, на котором наша ячейка, в которой создаем подсказку.
Далее жмем кнопку Подсказка и в появившемся окне вписываем текст всплывающей подсказки -Ок. Так же в основном окне жмем Ок. Подсказка создана.
Ниже небольшой ролик, в котором показано как это все делается пошагово:
В этом способе все хорошо, кроме двух вещей:
- Если подсказок много, то создавать их весьма непростое занятие. Необходимость листа «справочник» при ручном методе так же ставится под сомнение
- При создании гиперссылки формат ячейки автоматом изменяется. А для нашей цели это в большинстве случаев не надо. Это можно обойти, создавая подсказки вторым способом — при помощи кодов VBA.
СОЗДАНИЕ ПОДСКАЗКИ АВТОМАТИЧЕСКИ КОДОМ VBA
Здесь особо рассказывать нечего — лучше сначала скачать файл, приложенный к статье. Там есть лист «справочник», в котором забита пара значений для подсказок и лист, в котором подсказки создаются.
Как это работает. Выделяются ячейки для создания подсказок(в примере это D15:D16 ). И кнопкой запускается код, который в выделенных ячейках создаст всплывающие подсказки. Сам принцип: код просматривает каждую выделенную ячейку и если она не пустая запоминает её значение. Ищет это значение в первом столбце листа «справочник» и если находит — создает гиперссылку и значение из второго столбца листа «справочник»(в строке с найденным значением) вставляет в качестве подсказки к гиперссылке.
Но помимо этого код перед созданием гиперссылки запоминает большую часть форматирования текста в ячейке и после создания гиперссылки возвращает его. Хотя и здесь не без ложки дегтя — код не сможет корректно обработать и вернуть смешанное форматирование (например, разный цвет шрифта в одной ячейке, разный стиль и т.п.). Но подсказки при этом все равно будут созданы.
Что следует знать: код ищет каждое значение ячейки полностью, а не каждое слово отдельно. Это значит, что если в ячейке будет записано «аннуитентный платеж», а не просто «аннуитентный» как в примере — то подсказка для такой ячейки не будет создана.
Если добавить или изменить значения в листе «справочник», то для того, чтобы подсказки обновились необходимо запустить код заново. Внесение изменений в сам код при этом не требуется.
Созданные подсказки останутся в файле даже если удалить сам код. Т.е. если создать подсказки в файле, а затем файл переслать другому человеку — он сможет использовать подсказки без дополнительных действий.
Всплывающая подсказка в ячейке (59,0 KiB, 3 411 скачиваний)
Изучим простой способ добавления всплывающей подсказки в Excel при вводе данных в ячейку.
Одним из элементов упрощения ввода данных пользователем является добавление всплывающей подсказки, которая появляется при активации конкретной ячейки.
Это позволяет минимизировать возможность ошибки при вводе, а также напоминает какие конкретно данные необходимо ввести в ячейку.
Как сделать всплывающую подсказку?
Чтобы сделать всплывающую подсказку для ячейки выберем на панели вкладок Данные -> Работа с данными -> Проверка данных и в открывшемся окне перейдем в центральную вкладку:
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
1. Держать Alt + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. В Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь из Проект-VBAProject панели, затем скопируйте и вставьте приведенный ниже код VBA в Модули окно, см. снимок экрана:
Внимание: Если Проект-VBAProject панель скрыта, щелкните Вид > Обозреватель проекта для его отображения.
3. Затем закройте окно кода и сохраните эту книгу как Excel Macro-Enabled Workbook формат, пожалуйста, нажмите Файл > Сохранить какИ в Сохранить как окно, выберите Excel Macro-Enabled Workbook из Сохранить как список, см. снимок экрана:
4. Теперь при первом открытии этого файла вверху таблицы отображается предупреждение системы безопасности, щелкните Включить контент кнопку для активации кода VBA, см. снимок экрана:
Автоматически открывать определенные книги при следующем запуске Excel
После установки Kutools for Excel, выполните следующие действия:
1. Открывайте книги, которые вы хотите открыть вместе в следующий раз автоматически.
2. Затем нажмите Предприятие > Workbook > Автоматически открывать эту книгу в следующий раз, см. снимок экрана:
3. В Автоматически открывать эту книгу в следующий раз диалоговое окно, щелкните Выбрать все чтобы проверить все книги, которые вы хотите автоматически открывать в следующий раз при запуске файла Excel, затем нажмите Ok для выхода из диалога см. снимок экрана:
4. И теперь, когда вы запускаете файл Excel, все выбранные вами книги открываются одновременно.
Внимание: Чтобы отменить эту операцию, вам просто нужно отменить выбор всех книг или удалить или очистить книги в Автоматически открывать эту книгу в следующий раз диалоговое окно.
Источник
Содержание
- 1 Создание раскрывающегося списка
- 2 Выпадающий список в Excel с подстановкой данных
- 3 Выпадающий список в Excel с данными с другого листа/файла
- 4 Как сделать зависимые выпадающие списки
- 5 Выпадающий список с поиском
- 6 Способ 1 — горячие клавиши и раскрывающийся список в excel
- 7 Способ 2 — самый удобный, простой и наиболее гибкий
- 8 Способ 3 — как в excel сделать выпадающий список с использованием ActiveX
Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.
Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.
Создание раскрывающегося списка
Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».
Ввести значения, из которых будет складываться выпадающий список, можно разными способами:
- Вручную через «точку-с-запятой» в поле «Источник».
- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
- Назначить имя для диапазона значений и в поле источник вписать это имя.
Любой из вариантов даст такой результат.
Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:
Протестируем. Вот наша таблица со списком на одном листе:
Добавим в таблицу новое значение «елка».
Теперь удалим значение «береза».
Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.
Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.
- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».
- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».
Нажмем «Да» и добавиться еще одна строка со значением «баобаб».
Выпадающий список в Excel с данными с другого листа/файла
Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“Лист1!$A$1:$A$9”).
Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.
Как сделать зависимые выпадающие списки
Возьмем три именованных диапазона:
Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.
- Создадим первый выпадающий список, куда войдут названия диапазонов.
- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
- Жмем «Свойства» – открывается перечень настроек.
- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
Для таблиц, которые используют постоянные и повторяющиеся данные (например фамилии сотрудников, номенклатура товара или процент скидки для клиента) чтобы не держать в голове и не ошибиться при наборе, существует возможность один раз создать стандартный список и при подстановке данных делать выборку из него. Данная статья позволит вам использовать 4 разных способа как в экселе сделать выпадающий список.
Способ 1 — горячие клавиши и раскрывающийся список в excel
Данный способ использования выпадающего списка по сути не является инструментом таблицы, который надо как либо настраивать или заполнять. Это встроенная функция (горячие клавиши) которая работает всегда. При заполнении какого либо столбца, вы можете нажать правой кнопкой мыши на пустой ячейке и в выпадающем списке выбрать пункт меню «Выбрать из раскрывающегося списка».
Этот же пункт меню можно запустить сочетанием клавиш Alt+»Стрелка вниз» и программа автоматически предложит в выпадающем списке значения ячеек, которые вы ранее заполняли данными. На изображении ниже программа предложила 4 варианта заполнения (дублирующиеся данные Excel не показывает). Единственное условие работы данного инструмента — это между ячейкой, в которую вы вводите данные из списка и самим списком не должно быть пустых ячеек.
Использование горячих клавиш для раскрытия выпадающего списка данных
При чем список для заполнения таким способом работает как в ячейке снизу, так и в ячейке сверху. Для верхней ячейки программа возьмет содержание списка из нижних значений. И опять же не должно быть пустой ячейки между данными и ячейкой для ввода.
Выпадающий список может работать и в верхней части с данными, которые ниже ячейки
Способ 2 — самый удобный, простой и наиболее гибкий
Данный способ предполагает создание отдельных данных для списка. При чем данные могут находится как на листе с таблицей, так и на другом листе файла Excel.
- Сперва необходимо создать список данных, который будет источником данных для подстановки в выпадающий список в excel. Выделите данные и нажмите правой кнопкой мыши. В выпадающем списке выберите пункт «Присвоить имя…».
Создание набора данных для списка
- В окне «Создание имени» задайте имя для вашего списка (это имя дальше будет использоваться в формуле подстановки). Имя должно быть без пробелов и начинаться с буквы.
Введите имя для набора данных
- Выделите ячейки (можно сразу несколько ячеек), в которых планируется создать выпадающий список. Во вкладке «ДАННЫЕ» вверху документа нажмите на «Проверка данных».
Создать выпадающий список можно сразу для нескольких ячеек
- В окне проверка вводимых значение в качестве типа данных задайте «Список». В строке «Источник:» введите знак равно и имя для ранее созданного списка. Данная формула позволит ввести значения только из списка, т.е. произведет проверку введенного значения и предложит варианты. Эти варианты и будут выпадающим списком.
Для создания проверки вводимых значений введите имя ранее созданного списка
При попытке ввести значение, которого нет в заданном списке, эксель выдаст ошибку.
Кроме списка можно вводить данные вручную. Если введенные данные не совпадут с одним из данных — программа выдаст ошибку
А при нажатии на кнопку выпадающего списка в ячейке вы увидите перечень значений из созданного ранее.
Способ 3 — как в excel сделать выпадающий список с использованием ActiveX
Чтобы воспользоваться этим способом, необходимо чтобы у вас была включена вкладка «РАЗРАБОТЧИК». По умолчанию эта вкладка отсутствует. Чтобы ее включить:
- Нажмите на «Файл» в левом верхнем углу приложения.
- Выберите пункт «Параметры» и нажмите на него.
- В окне настройки параметров Excel во вкладке «Настроить ленту» поставьте галочку напротив вкладки «Разработчик».
Включение вкладки «РАЗРАБОТЧИК»
Теперь вы сможете воспользоваться инструментом «Поле со списком (Элемент ActiveX)». Во вкладке «РАЗРАБОТЧИК» нажмите на кнопку «Вставить» и найдите в элементах ActiveX кнопку «Поле со списком (Элемент ActiveX)». Нажмите на нее.
Нарисуйте данный объект в excel выпадающий список в ячейке, где вам необходим выпадающий список.
Теперь необходимо настроить данный элемент. Чтобы это сделать, необходимо включить «Режим конструктора» и нажать на кнопку «Свойства». У вас должно открыться окно свойств (Properties).
С открытым окном свойств нажмите на ранее созданный элемент «Поле со списком». В списке свойств очень много параметров для настройки и вы сможете изучив их, настроить очень много начиная от отображения списка до специальных свойств данного объекта.
Но нас на этапе создания интересуют только три основных:
- ListFillRange — указывает диапазон ячеек, из которых будут браться значения для выпадающего списка. В моем примере я указал два столбца (A2:B7 — дальше покажу как это использовать). Если необходимо только одни значения указывается A2:A7.
- ListRows — количество данных в выпадающем списке. Элемент ActiveX отличается от первого способа тем, что можно указать большое количество данных.
- ColumnCount — указывает сколько столбцов данных указывать в выпадающем списке.
В строке ColumnCount я указал значение 2 и теперь в списке выпадающие данные выглядят вот так:
Как видите получился выпадающий список в excel с подстановкой данных из второго столбца с данными «Поставщик».
Выпадающий список в Excel это, пожалуй, один из самых удобных способов работы с данными. Использовать их вы можете как при заполнении форм, так и создавая дашборды и объемные таблицы. Выпадающие списки часто используют в приложениях на смартфонах, веб-сайтах. Они интуитивно понятны рядовому пользователю.
Кликните по кнопке ниже для загрузки файла с примерами выпадающих списков в Excel:
Видео-урок Как создать выпадающий список в Экселе на основе данных из перечня
Представим, что у нас есть перечень фруктов:
Для создания выпадающего списка нам потребуется сделать следующие шаги:
- Выбрать ячейку, в которой мы хотим создать выпадающий список;
- Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбираем пункт “Проверка данных“.
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
- В поле “Источник” ввести диапазон названий фруктов =$A$2:$A$6 или просто поставить курсор мыши в поле ввода значений “Источник” и затем мышкой выбрать диапазон данных:
Если вы хотите создать выпадающие списки в нескольких ячейках за раз, то выберите все ячейки, в которых вы хотите их создать, а затем выполните указанные выше действия. Важно убедиться, что ссылки на ячейки являются абсолютными (например, $A$2), а не относительными (например, A2 или A$2 или $A2).
Как сделать выпадающий список в Excel используя ручной ввод данных
На примере выше, мы вводили список данных для выпадающего списка путем выделения диапазона ячеек. Помимо этого способа, вы можете вводить данные для создания выпадающего списка вручную (необязательно их хранить в каких-либо ячейках).
Например, представим что в выпадающем меню мы хотим отразить два слова “Да” и “Нет”. Для этого нам потребуется:
- Выбрать ячейку, в которой мы хотим создать выпадающий список;
- Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
- В поле “Источник” ввести значение “Да; Нет”.
- Нажимаем “ОК“
После этого система создаст раскрывающийся список в выбранной ячейке. Все элементы, перечисленные в поле “Источник“, разделенные точкой с запятой будут отражены в разных строчках выпадающего меню.
Если вы хотите одновременно создать выпадающий список в нескольких ячейках – выделите нужные ячейки и следуйте инструкциям выше.
Как создать раскрывающийся список в Эксель с помощью функции СМЕЩ
Наряду со способами описанными выше, вы также можете использовать формулу СМЕЩ для создания выпадающих списков.
Например, у нас есть список с перечнем фруктов:
Для того чтобы сделать выпадающий список с помощью формулы СМЕЩ необходимо сделать следующее:
- Выбрать ячейку, в которой мы хотим создать выпадающий список;
- Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
- В поле “Источник” ввести формулу: =СМЕЩ(A$2$;0;0;5)
- Нажать “ОК“
Система создаст выпадающий список с перечнем фруктов.
Как эта формула работает?
На примере выше мы использовали формулу =СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;;).
Эта функция содержит в себе пять аргументов. В аргументе “ссылка” (в примере $A$2) указывается с какой ячейки начинать смещение. В аргументах “смещ_по_строкам” и “смещ_по_столбцам” (в примере указано значение “0”) – на какое количество строк/столбцов нужно смещаться для отображения данных. В аргументе “” указано значение “5”, которое обозначает высоту диапазона ячеек. Аргумент “” мы не указываем, так как в нашем примере диапазон состоит из одной колонки.
Используя эту формулу, система возвращает вам в качестве данных для выпадающего списка диапазон ячеек, начинающийся с ячейки $A$2, состоящий из 5 ячеек.
Как сделать выпадающий список в Excel с подстановкой данных (с использованием функции СМЕЩ)
Если вы используете для создания списка формулу СМЕЩ на примере выше, то вы создаете список данных, зафиксированный в определенном диапазоне ячеек. Если вы захотите добавить какое-либо значение в качестве элемента списка, вам придется корректировать формулу вручную. Ниже вы узнаете, как делать динамический выпадающий список, в который будут автоматически загружаться новые данные для отображения.
Для создания списка потребуется:
- Выбрать ячейку, в которой мы хотим создать выпадающий список;
- Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“;
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“;
- В поле “Источник” ввести формулу: =СМЕЩ(A$2$;0;0;СЧЕТЕСЛИ($A$2:$A$100;””))
- Нажать “ОК“
В этой формуле, в аргументе “” мы указываем в качестве аргумента, обозначающего высоту списка с данными – формулу СЧЕТЕСЛИ, которая рассчитывает в заданном диапазоне A2:A100 количество не пустых ячеек.
Примечание: для корректной работы формулы, важно, чтобы в списке данных для отображения в выпадающем меню не было пустых строк.
Как создать выпадающий список в Excel с автоматической подстановкой данных
Для того чтобы в созданный вами выпадающий список автоматически подгружались новые данные, нужно проделать следующие действия:
- Создаем список данных для отображения в выпадающем списке. В нашем случае это список цветов. Выделяем перечень левой кнопкой мыши:
- На панели инструментов нажимаем пункт “Форматировать как таблицу“:
- Из раскрывающегося меню выбираем стиль оформления таблицы:
- Нажав клавишу “ОК” во всплывающем окне, подтверждаем выбранный диапазон ячеек:
- Затем, выделим диапазон данных таблицы для выпадающего списка и присвоим ему имя в левом поле над столбцом “А”:
Таблица с данными готова, теперь можем создавать выпадающий список. Для этого необходимо:
- Выбрать ячейку, в которой мы хотим создать список;
- Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
- В поле источник указываем =”название вашей таблицы”. В нашем случае мы ее назвали “Список“:
- Готово! Выпадающий список создан, в нем отображаются все данные из указанной таблицы:
- Для того чтобы добавить новое значение в выпадающий список – просто добавьте в следующую после таблицы с данными ячейку информацию:
- Таблица автоматически расширит свой диапазон данных. Выпадающий список соответственно пополнится новым значением из таблицы:
Как скопировать выпадающий список в Excel
В Excel есть возможность копировать созданные выпадающие списки. Например, в ячейке А1 у нас есть выпадающий список, который мы хотим скопировать в диапазон ячеек А2:А6.
Для того чтобы скопировать выпадающий список с текущим форматированием:
- нажмите левой клавишей мыши на ячейку с выпадающим списком, которую вы хотите скопировать;
- нажмите сочетание клавиш на клавиатуре CTRL+C;
- выделите ячейки в диапазоне А2:А6, в которые вы хотите вставить выпадающий список;
- нажмите сочетание клавиш на клавиатуре CTRL+V.
Так, вы скопируете выпадающий список, сохранив исходный формат списка (цвет, шрифт и.т.д). Если вы хотите скопировать/вставить выпадающий список без сохранения формата, то:
- нажмите левой клавишей мыши на ячейку с выпадающим списком, который вы хотите скопировать;
- нажмите сочетание клавиш на клавиатуре CTRL+C;
- выберите ячейку, в которую вы хотите вставить выпадающий список;
- нажмите правую кнопку мыши => вызовите выпадающее меню и нажмите “Специальная вставка“;
- В появившемся окне в разделе “Вставить” выберите пункт “условия на значения“:
- Нажмите “ОК“
После этого, Эксель скопирует только данные выпадающего списка, не сохраняя форматирование исходной ячейки.
Как выделить все ячейки, содержащие выпадающий список в Экселе
Иногда, сложно понять, какое количество ячеек в файле Excel содержат выпадающие списки. Есть простой способ отобразить их. Для этого:
- Нажмите на вкладку “Главная” на Панели инструментов;
- Нажмите “Найти и выделить” и выберите пункт “Выделить группу ячеек“:
- В диалоговом окне выберите пункт “Проверка данных“. В этом поле есть возможность выбрать пункты “Всех” и “Этих же“. “Всех” позволит выделить все выпадающие списки на листе. Пункт “этих же” покажет выпадающие списки схожие по содержанию данных в выпадающем меню. В нашем случае мы выбираем “всех“:
- Нажмите “ОК“
Нажав “ОК“, Excel выделит на листе все ячейки с выпадающим списком. Так вы сможете привести за раз все списки к общему формату, выделить границы и.т.д.
Как сделать зависимые выпадающие списки в Excel
Иногда нам требуется создать несколько выпадающих списков, причем, таким образом, чтобы, выбирая значения из первого списка, Excel определял какие данные отобразить во втором выпадающем списке.
Предположим, что у нас есть списки городов двух стран Россия и США:
Для создания зависимого выпадающего списка нам потребуется:
- Создать два именованных диапазона для ячеек “A2:A5” с именем “Россия” и для ячеек “B2:B5” с названием “США”. Для этого нам нужно выделить весь диапазон данных для выпадающих списков:
- Перейти на вкладку “Формулы” => кликнуть в разделе “Определенные имена” на пункт “Создать из выделенного“:
- Во всплывающем окне “Создание имен из выделенного диапазона” поставьте галочку в пункт “в строке выше“. Сделав это, Excel создаст два именованных диапазона “Россия” и “США” со списками городов:
- Нажмите “ОК“
- В ячейке “D2” создайте выпадающий список для выбора стран “Россия” или “США”. Так, мы создадим первый выпадающий список, в котором пользователь сможет выбрать одну из двух стран.
Теперь, для создания зависимого выпадающего списка:
- Выделите ячейку E2 (или любую другую ячейку, в которой вы хотите сделать зависимый выпадающий список);
- Кликните по вкладке “Данные” => “Проверка данных”;
- Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выберите “Список“:
- В разделе “Источник” укажите ссылку: =INDIRECT($D$2) или =ДВССЫЛ($D$2);
- Нажмите “ОК“
Теперь, если вы выберите в первом выпадающем списке страну “Россия”, то во втором выпадающем списке появятся только те города, которые относятся к этой стране. Также и в случае, когда выбираете “США” из первого выпадающего списка.
Обновлено: 15.04.2023
Имеем таблицу в Microsoft Excel, в которой хранится информация о ключевых клиентах нашей компании (адреса эл.почты, имена, названия компаний и т.д.), которых мы хотим поздравить с очередным праздником.
В терминах Microsoft Office такая процедура называется Слиянием (Mail Merge) . Поехали.
Подготовка списка клиентов в Excel
Таблица со списком клиентов для рассылки должна удовлетворять нескольким простым условиям:
- Шапка таблицы должна быть простой — одна строка с уникальными названиями столбцов (без повторений и пустых ячеек).
- В таблице не должно быть объединенных ячеек.
- В таблице не должно быть пустых строк или столбцов (отдельные пустые ячейки допускаются).
Если планируется отправка по электронной почте, то, само-собой, в таблице должен быть столбец с адресами получателей.
Поскольку Excel и Word не смогу сами определить пол клиента по имени, то имеет смысл сделать отдельный столбец с обращением (господин, госпожа и т.п.) или с родовым окончанием (-ый или -ая) для обращения «Уважаемый(ая). » Как вариант, возможно полуавтоматическое определение пола в зависимости от окончания отчества («а» или «ч»), реализованное функцией ПРАВСИМВ (RIGHT) .
В новых версиях Microsoft Excel 2007/2010 для таких таблиц очень удобно использовать инструмент Форматировать как таблицу (Format as Table) с вкладки Главная (Home) . Подробнее про такие «умные таблицы» можно почитать тут.
Потом запускаем пошаговый Мастер Слияния на вкладке Рассылки (Mailings) кнопкой Начать слияние ( Start Mail Merge ) – Пошаговый мастер слияния (Step-by-Step Merge Wizard) :
В Word 2003 и старше эта команда была доступна в меню Сервис — Письма и рассылки — Мастер слияния (Tools — Letters and Mailings — Mail Merge) .
Этап 1. Выбор типа документа.
Этап 2. Выбор документа
Этап 3. Выбор получателей
На этом шаге мы подключаем список клиентов в Excel к документу Word. Выбираем Использование списка и жмем на Обзор (Browse) , после чего в диалоговом окне открытия файла указываем где лежит наш файл со списком клиентов.
После выбора источника данных, Word позволяет провести фильтрацию, сортировку и ручной отбор записей при помощи окна Получатели слияния:
Этап 4. Создание письма
На этом этапе пользователь должен указать – куда именно в документ должны попасть данные из подключенного списка. Для этого необходимо установить курсор в точку вставки в письме и использовать ссылку Другие элементы — она выводит полный набор всех полей списка, из которого мы и выбираем нужное поле для вставки:
В итоге, после вставки всех полей слияния у нас должно получиться нечто похожее (вставленные поля выделены красным):
Если в исходной таблице не было специального столбца для окончания «ый»/»ая» к слову «уважаем» (как в нашем примере), но был обычный столбец «Пол» с классическими «муж» и «жен», то можно воспользоваться кнопкой Правила (Rules) на вкладке Рассылки (Mailings) :
Эта кнопка открывает список правил (функций и полей), доступных для вставки в документ при создании рассылки. Для подстановки нужного окончания к слову «уважаемый/ая» выберем третий пункт IF. THEN. ELSE. В открывшемся затем окне зададим правило подстановки правильного окончания в зависимости от пола:
Этап 5. Просмотр писем
На этом этапе мы уже можем предварительно просмотреть результаты слияния, используя кнопки со стрелками. При необходимости, также, можно исключить любого получателя из списка.
Этап 6. Завершение слияния
На завершающем этапе возможны несколько вариантов:
Нажатие ссылки Печать (Print) приведет к немедленной отправке всех результатов слияния на принтер без вывода на экран.
Если необходимо сохранить созданные в результате слияния документы для дальнейшего использования или требуется внести ручную правку в некоторые из документов, то лучше использовать ссылку Изменить часть писем (Edit individual letters) , которая выведет результаты слияния в отдельный файл:
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
1. Держать Alt + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. В Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь из Проект-VBAProject панели, затем скопируйте и вставьте приведенный ниже код VBA в Модули окно, см. снимок экрана:
Внимание: Если Проект-VBAProject панель скрыта, щелкните Вид > Обозреватель проекта для его отображения.
3. Затем закройте окно кода и сохраните эту книгу как Excel Macro-Enabled Workbook формат, пожалуйста, нажмите Файл > Сохранить какИ в Сохранить как окно, выберите Excel Macro-Enabled Workbook из Сохранить как список, см. снимок экрана:
4. Теперь при первом открытии этого файла вверху таблицы отображается предупреждение системы безопасности, щелкните Включить контент кнопку для активации кода VBA, см. снимок экрана:
Ноты:
Автоматически открывать определенные книги при следующем запуске Excel
После установки Kutools for Excel, выполните следующие действия:
1. Открывайте книги, которые вы хотите открыть вместе в следующий раз автоматически.
2. Затем нажмите Предприятие > Workbook > Автоматически открывать эту книгу в следующий раз, см. снимок экрана:
3. В Автоматически открывать эту книгу в следующий раз диалоговое окно, щелкните Выбрать все чтобы проверить все книги, которые вы хотите автоматически открывать в следующий раз при запуске файла Excel, затем нажмите Ok для выхода из диалога см. снимок экрана:
4. И теперь, когда вы запускаете файл Excel, все выбранные вами книги открываются одновременно.
Внимание: Чтобы отменить эту операцию, вам просто нужно отменить выбор всех книг или удалить или очистить книги в Автоматически открывать эту книгу в следующий раз диалоговое окно.
Прежде чем начать читать статью прошу принять к сведению объявление: используйте СВОИ АДРЕСА ЭЛ.ПОЧТЫ при тестировании кодов . Не надо отсылать письма на указанные в статье e-mail адреса- это все приходит мне на почту. Помимо этого Вы сами не сможете понять работает или нет, т.к. письма придут мне, а не Вам.
Спасибо за понимание
P.S. А если написанное выше Вы все же проигнорировали и отправили письмо на мои адреса электронной почты — это означает, что Вы соглашаетесь с тем, что вся информация внутри письма, включая вложения, может быть использована мной без ограничений в личных целях.
Отправка через меню Excel
Отправку без кода осуществить достаточно просто:
Далее выбирается способ отправки:
Sub SendMailStandart() ActiveWorkbook.SendMail «mail1@excel-vba.ru», «Тема письма» End Sub
Также можно указать несколько получателей:
Sub SendMailStandart_MassRecipients() ActiveWorkbook.SendMail Array(«mail1@excel-vba.ru», «mail2@excel-vba.ru»), «Тема письма» End Sub
Этот код отправляет одно письмо и одно вложение за раз. Но если несколько раз вызвать метод .Attachments.Add, то можно добавить еще файлы:
.Attachments.Add «C:TempКнига1.xlsx» .Attachments.Add «C:TempКнига2.xlsx» .Attachments.Add «C:DocumentsReport.rar»
objOutlookApp.Session.Logon «user»,»1234″,False, True
имеет особое значение. По сути она нужна только в тех случаях, когда в Outlook настроено несколько профилей(не путать с учетными записями) и запускать нужно от конкретного. Если профиль только один или не указан, то Outlook запускается с профилем по умолчанию. Для этого строку нужно записать без параметров(так же можно записать эту строку, если Outlook при попытке создания письма выдает ошибку профиля):
Картинка в письме
Этот код отправляет одно письмо и вставляет одну картинку. За это отвечает строка
Если картинку надо вложить с заранее указанными размерами, то строка будет выглядеть так:
«» ‘height — высота ‘width — ширина
Если надо добавить несколько картинок, то метод .Attachments.Add sPicture надо будет вызвать столько раз, сколько картинок(для каждого свой путь к картинке).
Важно помнить: пути для картинок должны содержать полный путь до файла, включая его имя и расширение: C:ДокументыИзображенияExcel_vba_ru.jpg . При указании только имени Excel_vba_ru.jpg или пути без расширения ( C:ДокументыИзображенияExcel_vba_ru ) ошибки не будет, но картинка не будет вставлена, а вместо неё скорее всего будет текст «Ошибка загрузки картинки!» или пустой квадрат вместо реальной картинки.
- Outlook 2007 : Меню-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
- Outlook 2010 и выше : Файл-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
ВАЖНО: Если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями, возможность изменения данных настроек безопасности программного доступа будет недоступна.
Но так же при отправке файлов и писем часто необходимо не привязываться к конкретной почтовой программе. Ведь далеко не все ставят Outlook. Многие используют иные почтовые программы, например TheBat.
Данный код отправляет письмо, используя объект CDO (Collaboration Data Objects — присутствует во всех версиях Windows) и от имени Вашей учетной записи(либо Яндекс, либо Мэйл, либо Рамблер либо др.).
Это основные моменты. Поля Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.
Чтобы использовать данный код вы можете либо просто скопировать его прямо со страницы, либо скачать файл. В файле программа немного упрощена к использованию — в ячейки листа вам необходимо будет внести поля: Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) и выбрать SMTPserver. SMTPserver выбирается из выпадающего списка. Сам список является динамическим и расположен на листе «Settinngs«. Там же расположены поля Учетной записи и Пароль, которые автоматически подставляются в необходимые поля на листе «Отправка«. Т.к. список динамический Вы можете просто добавлять к уже имеющимся новые сервисы и потом просто выбирать их из списка. Так же в файле есть еще одна возможность — выбрать файл. Для этого надо просто нажать на кнопку и выбрать файл.
With oCDOMsg Set .Configuration = oCDOCnf .From = sFrom .BodyPart.Charset = «windows-1251» .To = sTo .Subject = sSubject Set objbp = oCDOMsg.AddRelatedBodyPart(«C:ДокументыИзображения11.jpg», «11.jpg», 1) objbp.Fields.Item(«urn:schemas:mailheader:Content-ID») objbp.Fields.Update If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> «» Then .AddAttachment sAttachment End If End If ‘для вложения картинки письмо лучше формировать в формате HTML .HTMLBody «11.jpg»»>
» & sBody .Send End With
Самый главный момент:
AddRelatedBodyPart
-
C:ДокументыИзображения11.jpg — указывается полный путь к файлу картинки на компьютере, включая расширение файла.
11.jpg — указывается имя картинки с расширением. Это имя будет использовано внутри письма и именно его необходимо будет указать дальше в » urn:schemas:mailheader:Content-ID «. И указывать обязательно в треугольных скобках: » »
внутри же самого письма в том месте, где должна отображаться картинки надо записать:
в приведенном выше коде картинка вставляется в самом начале письма и после неё так же добавляется перенос на новую строку при помощи тэга
Войти через uID
Войти через uID
Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.
Вариант на VBA рассматривается ?
Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.
Вариант на VBA рассматривается ? x_hunter_x
Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.
Вариант на VBA рассматривается ? Автор — x_hunter_x
Дата добавления — 13.12.2019 в 18:56
x_hunter_x,
Большое спасибо.
Отвечаю: 1. Число образуется в результате разности Дат, ячейка в формате: Общий .
2.
x_hunter_x,
Большое спасибо.
Отвечаю: 1. Число образуется в результате разности Дат, ячейка в формате: Общий .
2.
Читайте также:
- Сообщение моя мама историк
- Сообщение о политических партиях рф программа деятельность история возникновения
- Сообщение об одной из политических партий рф
- Сообщение о музыкальном инструменте маримба
- Диетотерапия при хронической сердечной недостаточности реферативное сообщение
Create a pop-up message box in Excel using VBA Macros. This allows you to show a message to the user and to get input back, depending on which buttons were clicked in the pop-up message.
To output a message in Excel, we use the MsgBox function. Below, you will find many examples that should suit your needs.
Sections:
Syntax
Example 1 — Output Basic Text
Example 2 — Add Buttons to the Message Box
Example 3 — Figure Out Which Button Was Clicked
Example 4 — Do Something After the User Clicks a Button
Example 5 — Change MsgBox Appearance
Notes
Syntax
MsgBox(prompt, [buttons], [title], [helpfile], [context])
Argument | Description |
---|---|
Prompt |
The text that will be in the message box. This is the only required argument for the MsgBox function. |
[Buttons] |
Allows you to display different buttons and icons in the message box. |
[Title] |
Text that appears in the title bar of the message box. |
[Helpfile] |
Not needed. Allows for a specific help file to be used. |
[Context] |
Not needed. Required if the helpfile argument is used. |
[] means it is an optional argument.
Button Arguments
These are the values that can be entered for the buttons argument. You will use the VB Codes to add them to the message box. Examples below will include some of these options so you can better understand them.
VB Code | Description | Value |
---|---|---|
vbOKOnly |
OK Button. Default. |
0 |
vbOKCancel |
OK and Cancel buttons. |
1 |
vbAbortRetryIgnore |
Abort, Retry, and Ignore buttons. |
2 |
vbYesNoCancel |
Yes, No, and Cancel buttons. |
3 |
vbYesNo |
Yes and No buttons. |
4 |
vbRetryCancel |
Retry and Cancel buttons. |
5 |
vbCritical |
Displays the Critical Message icon in the message box window. |
16 |
vbQuestion |
Displays the Warning Query icon in the message box window. |
32 |
vbExclamation |
Displays the Warning Message icon in the message box window. |
48 |
vbInformation |
Displays the Information Message icon in the message box window. |
64 |
vbDefaultButton1 |
Selects the first button in the message box by default. |
0 |
vbDefaultButton2 |
Selects the second button in the message box by default. |
256 |
vbDefaultButton3 |
Selects the third button in the message box by default. |
512 |
vbDefaultButton4 |
Selects the fourth button in the message box by default. |
768 |
vbApplicationModal |
Application modal; the user must respond to the message box before continuing work in Excel. |
0 |
vbSystemModal |
System modal; all applications are suspended until the user responds to the message box. |
4096 |
VbMsgBoxSetForeground |
Specifies the message box window as the foreground window |
65536 |
vbMsgBoxRight |
Text is right aligned |
524288 |
Values Returned from Button Clicks in the Message Box
When a user clicks one of the buttons that are in the message box, a value will be returned to VBA; that value corresponds to the button that was clicked and is listed below.
Button Clicked | Returned Constant | Returned # Value |
---|---|---|
OK |
vbOK |
1 |
Cancel |
vbCancel |
2 |
Abort |
vbAbort |
3 |
Retry |
vbRetry |
4 |
Ignore |
vbIgnore |
5 |
Yes |
vbYes |
6 |
No |
vbNo |
7 |
Example 1 — Output Basic Text
Basic message box with text.
This is the simplest form of outputting a message.
MsgBox "Hi, this is my message."
Running the macro we get this:
Remember, the OK button is there by default and clicking that simply closes the pop-up message box window.
Example 2 — Add Buttons to the Message Box
Message box with multiple buttons.
MsgBox "Hi, this is my message.", vbYesNoCancel
I added a comma after the display text and then input one of the VB codes from the Button Arguments list above.
Run the macro and we get this in Excel:
Example 3 — Figure Out Which Button Was Clicked
When a button is clicked, it sends a value back to Excel. Now, we need to capture that value so we can do something with it.
response = MsgBox("Hi, this is my message.", vbYesNoCancel)
All we have to do is to set a variable equal to the output of the MsgBox function. Here, the variable response is equal to the output of the function, which means that we type response = and then the msgbox function.
Note also that there are now parentheses surrounding the arguments for the MsgBox function; these weren’t included before because they weren’t needed. Often, they aren’t used when creating simple pop-up windows.
I will now output the variable response into a Msgbox of its own so you can see the value it returns after a button was clicked.
Here is the final code for this example:
Run it and you get this:
Click one of the buttons and the next message box will open with the value that was returned as a result of the button click in the first window.
A 6 is returned, which means the button Yes was clicked. We know this from the table above «Values Returned from Button Clicks in the Message Box», which lists the values that each button click will return.
Example 4 — Do Something After the User Clicks a Button
Now that you know how to determine which button was clicked, let’s do something useful with it.
I will make a simple IF statement that checks which button was clicked and outputs a message based on that.
Sub button_action_msgbox()
response = MsgBox("Hi, this is my message.", vbYesNo)
If response = 6 Then
MsgBox "You clicked Yes"
ElseIf response = 7 Then
MsgBox "You clicked No"
End If
End Sub
Run the macro:
Hit one of the buttons and the next part of the macro will run and the corresponding msgbox will appear:
At this point, we have created a useful pop-up message box that solicits feedback and does something with that feedback.
Example 5 — Change MsgBox Appearance
You can add some additional things to the pop-up window to change its look and feel and here I will include some of those options, including a custom title for the window.
Sub button_style_msgbox()
MsgBox _
"Hi, this is my message.", _
vbOKOnly + vbInformation, _
"Custom Title"
End Sub
First, notice that I used «_» at the end of each line so that I could place this piece of code on multiple lines.
Second, notice that there is now a custom title called Custom Title that will appear for the msgbox.
Third, notice that there is more than one option for the buttons argument and that each argument is separated with a plus sign (+) like this: vbOKOnly + vbInformation.
Run the macro and we get this:
The option vbOKOnly meant there would be only an OK button. The option vbInformation put that image with the i inside the blue circle in there. The custom title appears in the upper-left corner of the pop-up message box window.
Notes
These are a few examples that should get you comfortable using the Message Box pop-up window feature in macros in Excel.
This is a great way to give some information to your user that they must process or at least must reply to in some way before continuing.
Make sure to download the sample file attached to this tutorial to get all of the sample VBA Macro codes.
В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]
Рис. 1. Работа процедуры GetName
Скачать заметку в формате Word или pdf, примеры в архиве
Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.
Содержание
- 1
Использование окон ввода данных - 2
Функция InputBox в VBA - 3
Метод Excel InputBox - 4
Функция VBA MsgBox - 5
Метод Excel GetOpenFilename - 6
Метод Excel GetSaveAsFilename - 7
Получение имени папки - 8
Отображение диалоговых окон Excel - 9
Отображение формы ввода данных
Использование окон ввода данных
Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.
Функция InputBox в VBA
Функция имеет следующий синтаксис:
InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.
Процедура GetName запрашивает у пользователя полное имя (имя и фамилию). Затем программа выделяет имя и отображает приветствие в окне сообщения (см. рис. 1; код функции можно найти в файле VBA inputbox.xlsm).
Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.
Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.
В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.
Рис. 2. Использование функции VBA inputBox, отображающей запрос
Метод Excel InputBox
Метод Excel InputBox по сравнению с функцией VBA InputBox предоставляет три преимущества:
- возможность задать тип возвращаемого значения;
- возможность указать диапазон листа путем выделения с помощью мыши;
- автоматическая проверка правильности введенных данных.
Метод InputBox имеет следующий синтаксис.
InputBox(запрос, [, заголовок], [, по_умолчанию], [, слева], [, сверху], [, справка, раздел], [, тип])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- Слева, сверху. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
- Тип. Указывает код типа данных, который будет возвращаться методом (необязательный параметр; значения см. рис. 3).
Рис. 3. Коды типов данных, возвращаемые методом Excel InputBox
Используя сумму приведенных выше значений, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным 3 (1 + 2 или число + текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Пользователь также можент выбрать диапазон на текущем рабочем листе.
В процедуре EraseRange используется метод InputBox. Пользователь может указать удаляемый диапазон (рис. 4). Адрес диапазона вводится в окно вручную, или выделяется мышью на листе. Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на ключевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена, то оператор On Error завершит процедуру.
Рис. 4. Пример использования метода InputBox для выбора диапазона
Если в процедуре EraseRange ввести не диапазон адресов, то Excel отобразит сообщение (рис. 5) и позволит пользователю повторить ввод данных.
Рис. 5. Метод InputBox автоматически проверяет вводимые данные
Функция VBA MsgBox
Функция VBA MsgBox служит для отображения сообщения. Также она передает результат щелчка на кнопке ОК или Отмена). Синтаксис функции:
MsgBox(запрос[, кнопки][, заголовок][, справка, раздел])
- Запрос. Определяет текст, который будет отображаться в окне сообщения (обязательный параметр).
- Кнопки. Содержит числовое выражение (или константу), которое определяет кнопки, отображаемые в окне сообщения (необязательный параметр; рис. 6). Также можно задать кнопку по умолчанию.
- Заголовок. Содержит заголовок окна сообщения (необязательный параметр).
- Справка, раздел. Указывают файл и раздел справочной системы (необязательные параметры).
Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox
Первая группа значений (0–5) описывает номер и тип кнопок в диалоговом окне. Вторая группа (16, 32, 48, 64) описывает стиль значка. Третья группа (0, 256, 512) определяет, какая кнопка назначена по умолчанию. Четвертая группа (0, 4096) определяет модальность окна сообщения. Пятая указывает, показывать ли окно сообщений поверх других окон, устанавливает выравнивание и направление текста. В процессе сложения чисел для получения окончательного значения аргумента Buttons следует использовать только одно число из каждой группы.
Можно использовать функцию MsgBox в качестве процедуры (для отображения сообщения), а также присвоить возвращаемое этой функцией значение переменной. Функция MsgBox возвращает результат, представляющий кнопку, на которой щелкнул пользователь. В следующем примере отображается сообщение и не возвращается результат (код функций, приведенных в этом разделе см. также в файле VBA msgbox.xlsm).
Чтобы получить результат из окна сообщения, присвойте возвращаемое функцией MsgBox значение переменной. В следующем коде используется ряд встроенных констант (рис. 7), которые упрощают управление возвращаемыми функцией MsgBox значениями.
Рис. 7. Константы, возвращаемые MsgBox
Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.
В следующем примере функции используется комбинация констант для отображения окна сообщения с кнопками Да, Нет и знаком вопроса (рис. 8). Вторая кнопка (Нет) используется по умолчанию. Для простоты константы добавлены в переменную Config.
Рис. 8. Параметр Кнопки функции MsgBox определяет кнопки, которые отображаются в окне сообщения
В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор
If Not ContinueProcedure() Then Exit Sub
вызывает функцию ContinueProcedure (которая отображает окно сообщения). Если функция возвращает значение ЛОЖЬ (т.е. пользователь щелкнул на кнопке Нет), то процедура будет завершена. В противном случае выполняется следующий оператор.
Если в сообщении необходимо указать разрыв строки (рис. 9), воспользуйтесь константой vbCrLf (или vbNewLine):
Рис. 9. Разбиение сообщения на несколько строк
Для включения в сообщение символа табуляции применяется константа vbTab. В процедуре ShowRange окно сообщения используется для отображения диапазона значений размером 10 строк на 3 столбца — ячейки А1:С10 (рис. 10). В этом случае столбцы разделены с помощью константы vbTab. Новые строки вставляются с помощью константы vbCrLf. Функция MsgBox принимает в качестве параметра строку, длина которой не превышает 1023 символов. Такая длина задает ограничение на количество ячеек, которое можно отобразить в сообщении.
Рис. 10. Текст в этом окне сообщения содержит символы табуляции и разрыва строк
Метод Excel GetOpenFilename
Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):
Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)
- Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
- Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
- Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
- Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.
Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: "
Все файлы (*.*),*.*"
. Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.
В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.
В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).
На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).
Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл
В следующем примере пользователь может, удерживая нажатыми клавиши <Shift> и <Ctrl>, выбрать в окне несколько файлов. Обратите внимание, что событие использования кнопки Отмена определяется по наличию переменной массива FileName. Если пользователь не щелкнул на кнопке Отмена, то результирующий массив будет состоять как минимум из одного элемента. В этом примере список выбранных файлов отображается в окне сообщения.
Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.
Метод Excel GetSaveAsFilename
Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):
Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)
- Начальное_имя. Указывает предполагаемое имя файла.
- Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
- Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
- Заголовок. Определяет текст заголовка диалогового окна.
Получение имени папки
Для того чтобы получить имя файла, проще всего воспользоваться описанным выше методом GetOpenFileName. Но если нужно получить лишь имя папки (без названия файла), лучше воспользоваться методом объекта Excel FileDialog. Следующая процедура отображает диалоговое окно, в котором можно выбрать папку (см. также файл get directory.xlsm). С помощью функции MsgBox отображается имя выбранной папки (или сообщение Отменено).
Объект FileDialog позволяет определить начальную папку путем указания значения свойства InitialFileName. В примере в качестве начальной папки применяется путь к файлам Excel, заданный по умолчанию.
Отображение диалоговых окон Excel
Создаваемый вами код VBA может вызывать на выполнение многие команды Excel, находящиеся на ленте. И если в результате выполнения команды открывается диалоговое окно, ваш код может делать выбор в диалоговом окне (даже если само диалоговое окно не отображается). Например, следующая инструкция VBA эквивалентна выбору команды Главная –> Редактирование –> Найти и выделить –> Перейти и указанию диапазона ячеек А1:СЗ с последующим щелчком на кнопке ОК. Но само диалоговое окно Переход при этом не отображается (именно это и нужно).
Application.Goto Reference:=Range("
А1:СЗ"
)
Иногда же приходится отображать встроенные окна Excel, чтобы пользователь мог сделать свой выбор. Для этого используется коллекция Dialogs объекта Application. Учтите, что в настоящее время компания Microsoft прекратила поддержу этого свойства. В предыдущих версиях Excel пользовательские меню и панели инструментов создавались с помощью объекта CommandBar. В версиях Excel 2007 и Excel 2010 этот объект по-прежнему доступен, хотя и работает не так, как раньше. Начиная с версии Excel 2007 возможности объекта CommandBar были существенно расширены. В частности, объект CommandBar можно использовать для вызова команд ленты с помощью VBA. Многие из команд, доступ к которым открывается с помощью ленты, отображают диалоговое окно. Например, следующая инструкция отображает диалоговое окно Вывод на экран скрытого листа (рис. 12; см. также файл ribbon control names.xlsm):
Application.CommandBars.ExecuteMso("
SheetUnhide"
)
Рис. 12. Диалоговое окно, отображаемое в результате выполнения указанного выше оператора
Метод ExecuteMso принимает лишь один аргумент, idMso, который представляет элемент управления ленты. К сожалению, сведения о многих параметрах в справочной системе отсутствуют.
В файле ribbon control names.xlsm описаны все названия параметров команд ленты Excel. Поэкспериментируйте с параметрами, перечисленными в этой рабочей книге. Многие из них вызывают команды немедленно (без промежуточных диалоговых окон). Но большинство из них генерирует ошибку при использовании в неправильном контексте. Например, Excel отображает сообщение об ошибке, если команда Functionwizard вызывается в случае выбора диаграммы.
В результате выполнения следующего оператора отображается вкладка Шрифт диалогового окна Формат ячеек:
Application.CommandBars.ExecuteMso("
FormatCellsFontDialog"
)
На самом деле пользоваться объектами CommandBar не стоит, поскольку вряд ли они будут поддерживаться в будущих версиях Excel.
Отображение формы ввода данных
Многие пользователи применяют Excel для управления списками, информация в которых ранжирована по строкам. В Excel поддерживается простой способ работы с подобными типами данных с помощью встроенных форм ввода данных, которые могут создаваться автоматически. Подобная форма предназначена для работы как с обычным диапазоном, так и с диапазоном, оформленным в виде таблицы (с помощью команды Вставка –> Таблицы –> Таблица). Пример формы ввода данных показан на рис. 13 (см. также файл data form example.xlsm).
Рис. 13. Некоторые пользователи предпочитают применять встроенные формы ввода данных Excel для ввода сведений; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
В силу каких-то неизвестных причин на ленте Excel отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.
- Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
- На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
- В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
- В появившемся списке выберите параметр Форма.
- Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
- Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.
После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.
Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу <Tab>. Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.
По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.
Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.
[1] По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 387–403.