Как в excel сформировать свое окно

Содержание

  • Как сделать новое окно?
  • Как создать файл в Экселе?
  • Как на рабочем столе одновременно открыть два файла Excel?
  • Как открыть два файла Excel в разных окнах?
  • Как открыть 2 файла Excel 2003 в разных окнах?
  • Как создать новое окно в Tkinter?
  • Как в хроме сделать открытие в новой вкладке?
  • Каком приложении можно создать файл с расширением XLSX?
  • Как создать VBA в Excel?
  • Как сохранить документ в Икс Эль?
  • Как на рабочем столе одновременно открыть два файла?
  • Можно ли одновременно работать с несколькими рабочими книгами?
  • Как в Excel открыть несколько файлов?

В окне открытой книги перейдите к вкладке «Вид». В группе «Окно» щелкните по кнопке «Новое окно» (рис. 2.6). После этого откроется новое окно документа, при этом в его названии появится дополнительная цифра, соответствующая общему количеству созданных дополнительных окон.

Как сделать новое окно?

Как открывать и закрывать окна или вкладки

  1. Чтобы открыть новое окно, нажмите Ctrl + N.
  2. Чтобы открыть новую вкладку, нажмите Ctrl + T.
  3. Чтобы закрыть окно или вкладку, нажмите на значок в правом верхнем углу.
  4. Чтобы снова открыть окно или вкладку, нажмите Ctrl + Shift + T.

Как создать файл в Экселе?

Создание документа Эксель

Если программа Excel у вас еще не открыта, кликните на ярлыке MS Excel на рабочем столе или в меню Пуск. После загрузки Эксель, появится стартовое окно с выбором шаблонов. Для создания нового документа, кликните на одном из них, или выберите Пустая книга.

Всё, что Вам нужно сделать – это открыть книгу и нажать команду New Window (Новое окно) на вкладке View (Вид). Вы можете нажать кнопку New Window (Новое окно) несколько раз, чтобы одновременно просматривать столько листов одной и той же рабочей книги, сколько потребуется.

Как открыть два файла Excel в разных окнах?

Разделение листа на области

  1. Выделите ячейку под строкой или справа от столбца, по которым следует произвести разделение.
  2. На вкладке Вид в группе Окно нажмите кнопку Разделить. Чтобы отменить разделение листа, нажмите кнопку Разделить еще раз.

Как открыть 2 файла Excel 2003 в разных окнах?

Способ 1: панель задач

  1. После того, как один документ Эксель уже запущен, наводим курсор на иконку программы, размещенную на Панели задач. …
  2. Открывается чистый лист Эксель в отдельном окне. …
  3. В запустившемся окне открытия файла переходим в директорию, где расположен нужный документ, выделяем его и жмем на кнопку «Открыть».

25 сент. 2018 г.

Как создать новое окно в Tkinter?

Для создания графического окна применяется конструктор Tk(), который определен в модуле tkinter. Создаваемое окно присваивается переменной root, и через эту переменную мы можем управлять атрибутами окна. В частности, с помощью метода title() можно установить заголовок окна. С помощью метода geometry() — размер окна.

Как в хроме сделать открытие в новой вкладке?

Чтобы открыть вкладку в новом окне, перетащите ее за пределы окна Google Chrome. Вы также можете воспользоваться быстрыми клавишами: Windows и Linux: Ctrl + N; macOS: ⌘ + N.

Каком приложении можно создать файл с расширением XLSX?

Открыть файл XLSX онлайн позволят следующие клиенты:

  • Google Drive;
  • Zoho Excel Viewer;
  • Microsoft Excel Online.

27 февр. 2019 г.

Как создать VBA в Excel?

Для ввода команд и формирования программы, т. е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel. В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic (Toos — Macro — Visual Basic Editor).

Как сохранить документ в Икс Эль?

Инструкция

  1. Нажмите на надпись «Файл» в левом верхнем углу программы.
  2. Из списка выберите пункт «Сохранить как».
  3. Появится небольшое окно выбора папки для сохранения. Указать ее можно через левую часть.
  4. Напечатайте название для вашего файла или оставьте таким, как предлагает программа. …
  5. Нажмите на кнопку «Сохранить».

Как на рабочем столе одновременно открыть два файла?

Способ 8: открытие одного файла несколько раз

  1. Запускаем файл. Переходим во вкладку «Вид» . В блоке инструментов «Окно» на ленте жмем на кнопку «Новое окно» .
  2. После этих действий данный файл откроется ещё один раз. В Excel 2013 и 2016 он запустится сразу же в новом окне.

Можно ли одновременно работать с несколькими рабочими книгами?

Кнопка Новое окно откроет тот же самый документ еще в одном окне. Таким образом вы сможете работать одновременно в двух разных частях книги. Функция удобна когда необходимо работать в расположенных далеко друг от друга ячейках. … При ее активации при прокрутке одной книги вторая будет прокручиваться в том же направлении.

Как в Excel открыть несколько файлов?

Способ номер один — значок Excel на панели задач

Затем перейдите в меню File (Файл) > Open (Открыть) и выберите вашу вторую книгу. Щелкните по значку программы на панели задач, удерживая клавишу Shift . Затем откройте вторую книгу в новом окне.

Интересные материалы:

Что производят в Альметьевске?
Что проверяет санэпидемстанция в салоне красоты?
Что распространилось по Великому шелковому пути в Европу?
Что растёт под соснами?
Что реагирует с водородом при обычных температурах?
Что с лицом у Сталлоне?
Что сажать рядом с петрушкой?
Что считается помолвкой?
Что считается Волонтерством?
Что считается за допинг?

Содержание

  • Применение инструментов заполнения
    • Способ 1: встроенный объект для ввода данных Excel
    • Способ 2: создание пользовательской формы
  • Вопросы и ответы

Форма в Microsoft Excel

Для облегчения ввода данных в таблицу в Excel можно воспользоваться специальными формами, которые помогут ускорить процесс заполнения табличного диапазона информацией. В Экселе имеется встроенный инструмент позволяющий производить заполнение подобным методом. Также пользователь может создать собственный вариант формы, которая будет максимально адаптирована под его потребности, применив для этого макрос. Давайте рассмотрим различные варианты использования этих полезных инструментов заполнения в Excel.

Применение инструментов заполнения

Форма заполнения представляет собой объект с полями, наименования которых соответствуют названиям колонок столбцов заполняемой таблицы. В эти поля нужно вводить данные и они тут же будут добавляться новой строкой в табличный диапазон. Форма может выступать как в виде отдельного встроенного инструмента Excel, так и располагаться непосредственно на листе в виде его диапазона, если она создана самим пользователем.

Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.

Способ 1: встроенный объект для ввода данных Excel

Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.

  1. Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
  2. Переход в параметры в Microsoft Excel

  3. В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.

    В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».

  4. Добавление инструмента форма на панель быстрого доступа в Microsoft Excel

  5. После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
  6. Инструмент форма добавлен на панель быстрого доступа в Microsoft Excel

  7. Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
  8. Инструмент форма отображается на панеле быстрого доступа в Microsoft Excel

  9. Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
  10. Шапка таблицы в Microsoft Excel

  11. Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
  12. первое значение в таблице в Microsoft Excel

  13. После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
  14. Запуск формы в Microsoft Excel

  15. Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
  16. Форма открыта в Microsoft Excel

  17. Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
  18. Ввод значений в форму в Microsoft Excel

  19. После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
  20. Значения перенесы в таблицу в Microsoft Excel

    Lumpics.ru

  21. Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
  22. Добавление второй строки в таблицу через форму в Microsoft Excel

  23. Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
  24. Вторая строка заполнена в таблице в Microsoft Excel

  25. Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
  26. Все значения в таблицу введены в Microsoft Excel

  27. Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
  28. Навигация по форме в Microsoft Excel

  29. При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
  30. Корректировка данных в форме в Microsoft Excel

  31. Как видим, изменение сразу произошло и в табличной области.
  32. Изменение произведено в таблице в Microsoft Excel

  33. Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
  34. Удаление строки через форму в Microsoft Excel

  35. Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
  36. Подтверждение удаления строки в Microsoft Excel

  37. Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
  38. Закрытие формы в Microsoft Excel

  39. После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.

Таблица отформатированв в Microsoft Excel

Способ 2: создание пользовательской формы

Кроме того, с помощью макроса и ряда других инструментов существует возможность создать собственную пользовательскую форму для заполнения табличной области. Она будет создаваться прямо на листе, и представлять собой её диапазон. С помощью данного инструмента пользователь сам сможет реализовать те возможности, которые считает нужными. По функционалу он практически ни в чем не будет уступать встроенному аналогу Excel, а кое в чем, возможно, превосходить его. Единственный недостаток состоит в том, что для каждого табличного массива придется составлять отдельную форму, а не применять один и тот же шаблон, как это возможно при использовании стандартного варианта.

  1. Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
  2. Шапка таблицы создана в Microsoft Excel

  3. Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
  4. Создание умной таблицы в Microsoft Excel

  5. Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
  6. Окошко форматирования таблицы в Microsoft Excel

  7. Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
    Отключение фильтра через вкладку Данные в Microsoft Excel

    Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».

  8. Отключение фильтра через вкладку Главная в Microsoft Excel

  9. Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
  10. Фильтр снят в Microsoft Excel

  11. Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.

    Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.

  12. Форма ввода данных на листе в Microsoft Excel

  13. После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
  14. Таблица со списком товаров в Microsoft Excel

  15. Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
  16. Переход к проверке данных в Microsoft Excel

  17. Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
  18. Окно проверки вводимых значений в Microsoft Excel

  19. Из раскрывшихся вариантов выбираем позицию «Список».
  20. Выбор списка в окне проверки вводимых значений в Microsoft Excel

  21. Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
  22. Переход к выбору источника в окне проверки вводимых значений в Microsoft Excel

  23. Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
  24. Адрес диапазона внесен в поле в Microsoft Excel

  25. Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
  26. Закрытие окна проверки вводимых значений в Microsoft Excel

  27. Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
  28. Список со значениями в Microsoft Excel

  29. Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
  30. Выбранная позиция отобразилась в ячейке в Microsoft Excel

  31. Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
  32. Наименование первой ячейки в Microsoft Excel

  33. Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
  34. Наименование второй ячейки в Microsoft Excel

  35. А ячейке с ценой – «Price».
  36. Наименование третьей ячейки в Microsoft Excel

  37. После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
  38. присвоение наименования диапазону в Microsoft Excel

  39. После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
  40. Сохранение книги в Microsoft Excel

  41. В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
  42. Окно сохранения файла в Microsoft Excel

  43. Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
  44. После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
  45. Переход в редактор макросов в Microsoft Excel

  46. Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
  47. Редактор макросов в Microsoft Excel

  48. После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.

    В поле «Name» тоже можно заменить название на более удобное. Но это не обязательно. При этом допускается использование пробелов, кириллицы и любых других знаков. В отличие от предыдущего параметра, который задает наименование листа для программы, данный параметр присваивает название листу, видимое пользователю на панели ярлыков.

    Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.

  49. Изменение наименования листа в редакторе макросов в Microsoft Excel

  50. Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
  51. Поле в редкторе макросов отобразилось в Microsoft Excel

  52. Теперь для конкретно нашего примера нужно записать в поле следующий код:


    Sub DataEntryForm()
    Dim nextRow As Long
    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
    With Producty
    If .Range("A2").Value = "" And .Range("B2").Value = "" Then
    nextRow = nextRow - 1
    End If
    Producty.Range("Name").Copy
    .Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
    .Cells(nextRow, 3).Value = Producty.Range("Volum").Value
    .Cells(nextRow, 4).Value = Producty.Range("Price").Value
    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
    .Range("A2").Formula = "=IF(ISBLANK(B2), """", COUNTA($B$2:B2))"
    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If
    .Range("Diapason").ClearContents
    End With
    End Sub

    Но этот код не универсальный, то есть, он в неизменном виде подходит только для нашего случая. Если вы хотите его приспособить под свои потребности, то его следует соответственно модифицировать. Чтобы вы смогли сделать это самостоятельно, давайте разберем, из чего данный код состоит, что в нем следует заменить, а что менять не нужно.

    Итак, первая строка:

    Sub DataEntryForm()

    «DataEntryForm» — это название самого макроса. Вы можете оставить его как есть, а можете заменить на любое другое, которое соответствует общим правилам создания наименований макросов (отсутствие пробелов, использование только букв латинского алфавита и т.д.). Изменение наименования ни на что не повлияет.

    Везде, где встречается в коде слово «Producty» вы должны его заменить на то наименование, которое ранее присвоили для своего листа в поле «(Name)» области «Properties» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

    Наименование для листа в Microsoft Excel

    Теперь рассмотрим такую строку:

    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

    Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

    Второй столбец таблицы в Microsoft Excel

    Далее рассмотрим строку

    If .Range("A2").Value = "" And .Range("B2").Value = "" Then

    «A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

    Две первые ячейки таблицы с данными в Microsoft Excel

    Переходим к строке

    Producty.Range("Name").Copy

    В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

    Имя поля наименования товара в форме ввода в Microsoft Excel

    В строках


    .Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
    .Cells(nextRow, 3).Value = Producty.Range("Volum").Value
    .Cells(nextRow, 4).Value = Producty.Range("Price").Value
    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

    Наименование полей количество и цена в Microsoft Excel

    В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

    Колонки в таблице в Microsoft Excel

    В строке производится умножение количества товара на его цену:

    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

    Колонка для вывода суммы в Microsoft Excel

    В этом выражении выполняется автоматическая нумерация строк:


    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If

    Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

    Столбец с нумерацией в Microsoft Excel

    В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

    .Range("Diapason").ClearContents

    Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

    Наименование полей для ввода данных в Microsoft Excel

    Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

    После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.

  53. Код в редакторе макросов в Microsoft Excel

  54. После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
  55. Выбор элемента управления в Microsoft Excel

  56. Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
  57. Указание границ кнопки в Microsoft Excel

  58. После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
  59. Окно назначения макроса объекту в Microsoft Excel

  60. После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
    Переименовывание кнопки в Microsoft Excel

    В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.

  61. Кнопка переименована в Microsoft Excel

  62. Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
  63. Ввод данных в форму в Microsoft Excel

  64. Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
  65. Значения первой строки внесены в таблицу в Microsoft Excel

  66. Повторно заполняем форму и жмем на кнопку «Добавить».
  67. Повторный ввод данных в форму в Microsoft Excel

  68. Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.

Вторая строка добавлена в таблицу в Microsoft Excel

Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel

В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.

В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]

Рис. 1. Работа процедуры GetName

Скачать заметку в формате Word или pdf, примеры в архиве

Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.

Использование окон ввода данных

Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.

Функция InputBox в VBA

Функция имеет следующий синтаксис:

InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])

  • Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
  • Заголовок. Определяет заголовок окна ввода (необязательный параметр).
  • По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
  • xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
  • Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).

Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.

Процедура GetName запрашивает у пользователя полное имя (имя и фамилию). Затем программа выделяет имя и отображает приветствие в окне сообщения (см. рис. 1; код функции можно найти в файле VBA inputbox.xlsm).

Sub GetName()

    Dim UserName As String

    Dim FirstSpace As Integer

    Do Until UserName <> «»

        UserName = InputBox(«Укажите имя и фамилию: «, _

            «Назовите себя»)

    Loop

    FirstSpace = InStr(UserName, » «)

    If FirstSpace <> 0 Then

        UserName = Left(UserName, FirstSpace 1)

    End If

    MsgBox «Привет « & UserName

End Sub

Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.

Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.

В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.

Sub GetWord()

    Dim TheWord As String

    Dim p As String

    Dim t As String

    p = Range(«A1»)

    t = «Какое слово пропущено?»

    TheWord = InputBox(prompt:=p, Title:=t)

    If UCase(TheWord) = «ВОДОКАЧКУ» Then

        MsgBox «Верно.»

    Else

        MsgBox «Не верно.»

    End If

End Sub

Рис. 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 завершит процедуру.

Sub EraseRange()

    Dim UserRange As Range

    On Error GoTo Canceled

    Set UserRange = Application.InputBox _

        (Prompt:=«Удаляемый диапазон:», _

        Title:=«Удаление диапазона», _

        Default:=Selection.Address, _

        Type:=8)

    UserRange.Clear

    UserRange.Select

Canceled:

End Sub

Рис. 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).

Sub MsgBoxDemo()

    MsgBox «При выполнении макроса ошибок не произошло.»

End Sub

Чтобы получить результат из окна сообщения, присвойте возвращаемое функцией MsgBox значение переменной. В следующем коде используется ряд встроенных констант (рис. 7), которые упрощают управление возвращаемыми функцией MsgBox значениями.

Sub GetAnswer()

    Dim Ans As Integer

    Ans = MsgBox(«Продолжать?», vbYesNo)

    Select Case Ans

        Case vbYes

            ‘ … [код при Ans равно Yes]

        Case vbNo

            ‘ ... [код при Ans равно No]

    End Select

End Sub

Рис. 7. Константы, возвращаемые MsgBox

Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.

Sub GetAnswer2()

    If MsgBox(«Продолжать?», vbYesNo) = vbYes Then

‘ … [код при Ans равно Yes]

    Else

... [код при Ans равно No]

    End If

End Sub

В следующем примере функции используется комбинация констант для отображения окна сообщения с кнопками Да, Нет и знаком вопроса (рис. 8). Вторая кнопка (Нет) используется по умолчанию. Для простоты константы добавлены в переменную Config.

Private Function ContinueProcedure() As Boolean

   Dim Config As Integer

   Dim Ans As Integer

   Config = vbYesNo + vbQuestion + vbDefaultButton2

   Ans = MsgBox(«Произошла ошибка. Продолжить?», Config)

   If Ans = vbYes Then ContinueProcedure = True _

      Else ContinueProcedure = False

End Function

Рис. 8. Параметр Кнопки функции MsgBox определяет кнопки, которые отображаются в окне сообщения

В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор

If Not ContinueProcedure() Then Exit Sub

вызывает функцию ContinueProcedure (которая отображает окно сообщения). Если функция возвращает значение ЛОЖЬ (т.е. пользователь щелкнул на кнопке Нет), то процедура будет завершена. В противном случае выполняется следующий оператор.

Если в сообщении необходимо указать разрыв строки (рис. 9), воспользуйтесь константой vbCrLf (или vbNewLine):

Sub MultiLine()

    Dim Msg As String

    Msg = «Это первая строка.» & vbCrLf & vbNewLine

    Msg = Msg & «Вторая строка.» & vbCrLf

    Msg = Msg & «Третья строка.»

    MsgBox Msg

End Sub

Рис. 9. Разбиение сообщения на несколько строк

Для включения в сообщение символа табуляции применяется константа vbTab. В процедуре ShowRange окно сообщения используется для отображения диапазона значений размером 10 строк на 3 столбца — ячейки А1:С10 (рис. 10). В этом случае столбцы разделены с помощью константы vbTab. Новые строки вставляются с помощью константы vbCrLf. Функция MsgBox принимает в качестве параметра строку, длина которой не превышает 1023 символов. Такая длина задает ограничение на количество ячеек, которое можно отобразить в сообщении.

Sub ShowRange()

    Dim Msg As String

    Dim r As Integer, c As Integer

    Msg = «»

    For r = 1 To 10

        For c = 1 To 3

            Msg = Msg & Cells(r, c).Text

            If c <> 3 Then Msg = Msg & vbTab

            Next c

            Msg = Msg & vbCrLf

        Next r

    MsgBox Msg

End Sub

Рис. 10. Текст в этом окне сообщения содержит символы табуляции и разрыва строк

Метод Excel GetOpenFilename

Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):

Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)

  • Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
  • Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
  • Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
  • Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.

Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: "Все файлы (*.*),*.*". Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.

В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.

Filt = «Текстовые файлы (*.txt),*.txt,» & _

   «Файлы Lotus (*.prn),*.prn,» & _

   «Файлы, разделенные запятой (*.csv),*.csv,» & _

   «Файлы ASCII (*.asc),*.asc,» & _

   «Все файлы (*.*),*.*»

В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

Sub GetImportFileName()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

‘   Настройка списка фильтров

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «Все файлы (*.*),*.*»

   Отображает *.* по умолчанию

    FilterIndex = 3

‘   Настройка заголовка диалогового окна

    Title = «Выберите файл для импорта»

   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title)

‘   При отмене выйти из окна

    If FileName = False Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

   Отображение полного имени и пути

    MsgBox «Вы выбрали « & FileName

End Sub

На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).

Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл

В следующем примере пользователь может, удерживая нажатыми клавиши <Shift> и <Ctrl>, выбрать в окне несколько файлов. Обратите внимание, что событие использования кнопки Отмена определяется по наличию переменной массива FileName. Если пользователь не щелкнул на кнопке Отмена, то результирующий массив будет состоять как минимум из одного элемента. В этом примере список выбранных файлов отображается в окне сообщения.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

Sub GetImportFileName2()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

    Dim i As Integer

    Dim Msg As String

‘   Установка списка фильтров файлов

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «All Files (*.*),*.*»

   Отображает *.* по умолчанию

    FilterIndex = 5

‘   Настройка заголовка диалогового окна

    Title = «Выберите файл для импорта»

   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title, _

         MultiSelect:=True)

‘   Выход в случае отмены работы с диалоговым окном

    If Not IsArray(FileName) Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

   Отображение полного пути и имени файлов

    For i = LBound(FileName) To UBound(FileName)

        Msg = Msg & FileName(i) & vbCrLf

    Next i

    MsgBox «Было выбрано:» & vbCrLf & Msg

End Sub

Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.

Метод Excel GetSaveAsFilename

Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):

Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)

  • Начальное_имя. Указывает предполагаемое имя файла.
  • Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
  • Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
  • Заголовок. Определяет текст заголовка диалогового окна.

Получение имени папки

Для того чтобы получить имя файла, проще всего воспользоваться описанным выше методом GetOpenFileName. Но если нужно получить лишь имя папки (без названия файла), лучше воспользоваться методом объекта Excel FileDialog. Следующая процедура отображает диалоговое окно, в котором можно выбрать папку (см. также файл get directory.xlsm). С помощью функции MsgBox отображается имя выбранной папки (или сообщение Отменено).

Sub GetAFolder()

    With Application.FileDialog(msoFileDialogFolderPicker)

        .InitialFileName = Application.DefaultFilePath & «»

        .Title = «Выберите местоположение резервной копии.«

        .Show

        If .SelectedItems.Count = 0 Then

            MsgBox «Отменено»

        Else

            MsgBox .SelectedItems(1)

        End If

    End With

End Sub

Объект 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 отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.

  1. Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
  2. На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
  3. В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
  4. В появившемся списке выберите параметр Форма.
  5. Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
  6. Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.

После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.

Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу <Tab>. Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.

По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.

Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.

Sub DisplayDataForm()

    Range(«A1»).Select

    ActiveSheet.ShowDataForm

End Sub

[1] По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 387–403.

Microsoft Excel: выпадающие списки

Выпадающий список в Microsoft Excel

​Смотрите также​ в ссылке, смотрели?​ рождение​ применит все установленные​ «Ок».​ и т.д. кроме​- сколько строк​ — Validation)​Спасибо!​ Workbook_Open() должно быть​rinat_n​oldval = Target​

​ обычный список именованным​ любой ячейке. Как​

Создание дополнительного списка

​ содержание в одной​ Например, =ДВССЫЛ($B3).​ переходим во вкладку​При работе в программе​хз​Hugo​

​ параметры, и список​2​ цвета)​ показывать в выпадающем​. Из выпадающего списка​Sergei A​ Private Sub Workbook_Activate()​: Апострофф, дата следующего​If Len(oldval) <>​ диапазоном (с помощью​ это сделать, уже​ ячейке нескольких значений.​Как видим, список создан.​ «Файл» программы Excel,​ Microsoft Excel в​

tablitsa-zagotovka-i-spisok-v-microsoft-excel

​: да смотрел, и​: Как Вы думаете​ готов к использованию.​Как сделать выпадающий​ForeColor​ списке. По умолчанию​Тип данных (Allow)​

Присвоение имени в Microsoft Excel

​:​rinat_n​ пересмотра. Данный файл​ 0 And oldval​ «Диспетчера имен»). Помним,​ известно. Источник –​ Когда пользователь щелкает​Теперь, чтобы и нижние​ а затем кликаем​ таблицах с повторяющимися​ там он выдает​ поступать с выходными?​

Создание имени в Microsoft Excel

​В Ворде​ список в экселе​и​ — 8, но​выберите вариант​AchilleS​: Апострофф, при проверки​ ответственный немножко неправильно​

Проверка данных в Microsoft Excel

​ <> newVal Then​ что имя не​ имя диапазона: =деревья.​ по стрелочке справа,​ ячейки приобрели те​ по надписи «Параметры».​ данными, очень удобно​ только которые родяться,​ Предупреждать заранее, или​Открываешь панель «Элементы​В нужном месте​BackColor​

Параметры вводимых значений в Microsoft Excel

​ можно больше, чего​Список (List)​: Спасибо! И сорри,​ скрипта выходит ошибка:​ сделал, я вот​Target = Target​ может содержать пробелов​Снимаем галочки на вкладках​ появляется определенный перечень.​

Выпадающий список в программе Microsoft Excel

Создание выпадающего списка с помощью инструментов разработчика

​ же свойства, как​В открывшемся окне переходим​ использовать выпадающий список.​ а ели например​ потом, с прошедшим​ управления» (правой кнопкой​ листа выберите ячейку​- цвет текста​ не позволяет предыдущий​и введите в​ что так) По​ Compile error: Expected​ хотел заняться пересмотром.​ & «,» &​

Переход в параметры Microsoft Excel

​ и знаков препинания.​ «Сообщение для ввода»,​ Можно выбрать конкретное.​ и в предыдущий​ в подраздел «Настройка​ С его помощью​

Включение режима разработчика в Microsoft Excel

​ день рождение 25.09.1990​ поздравлять будете?​ мыши на панели​ для задания выпадающего​ и фона, соответственно​ способ.​ строчку​ форуму поискал -​ End Sub​ Вообще возможно сделать​ newVal​Создадим первый выпадающий список,​ «Сообщение об ошибке».​Очень удобный инструмент Excel​

Выбор поля со списком в Microsoft Excel

​ раз, выделяем верхние​ ленты», и ставим​ можно просто выбирать​ он не выдает​А пример всёж​

Форма списка в Microsoft Excel

​ инструментов) выбираешь ComboBox,​ списка. В меню​Большим и жирным плюсом​После нажатия на​

Переход в свойства элемента управления в Microsoft Excel

​Источник (Source)​ не нашел. А​StoTisteg​ всплывающее окошко об​Else​ куда войдут названия​ Если этого не​

Свойства элемента управления в Microsoft Excel

​ для проверки введенных​ ячейки, и при​ флажок напротив значения​ нужные параметры из​Юрий М​

Редактирование в Microsoft Excel

​ сообразите…​ вставляешь в ячейку​

Выпадающий список в приложении Microsoft Excel

​ откройте пункты «Данные»​ этого способа является​ОК​знак равенства и​ помнил, что что-то​: Ну так добавьте​ окончании действия инструкций?​

Протягивание выпадающего списка в Microsoft Excel

Связанные списки

​Target = newVal​ диапазонов.​ сделать, Excel не​ данных. Повысить комфорт​ нажатой клавише мышки​ «Разработчик». Жмем на​ сформированного меню. Давайте​: С чего Вы​Юрий М​ таблицы. В режиме​ — «Проверка». После​ возможность быстрого перехода​списком можно пользоваться.​ имя диапазона (т.е.​ подобное видел.​ последнюю строку End​Апострофф​

​End If​Когда поставили курсор в​ позволит нам вводить​ работы с данными​ «протаскиваем» вниз.​ кнопку «OK».​

Таблицы в Microsoft Excel

​ выясним, как сделать​ взяли? У Сотрудника​: Не создавайте дубликатов​ конструктора (кнопка с​ чего перейдите в​

Присваивание имени в Microsoft Excel

​ к нужному элементу​Чтобы вместо порядкового номера​=Товары​Кос​ Sub. И вообще​

Ввод данных в Microsoft Excel

​: Код в модуль​If Len(newVal) =​ поле «Источник», переходим​ новые значения.​ позволяют возможности выпадающих​Всё, таблица создана.​После этого, на ленте​

Ввод данных для второй ячейки в Microsoft Excel

​ раскрывающийся список различными​

Список создан в Microsoft Excel

​ 17 поставил дату​ тем!​ треугольником и карандашом)​ новом окне во​ в списке при​ элемента выводилось его​).​: Здравствуйте! Я так​

Таблица создана в Microsoft Excel

​ скопируйте код полностью,​

​ ЭтаКнига, и будете​ 0 Then Target.ClearContents​ на лист и​Вызываем редактор Visual Basic.​ списков: подстановка данных,​Мы разобрались, как сделать​ появляется вкладка с​ способами.​ 22.11.1990 — работает.​Ваших данных нет,​ тебе также доступны​ вкладку «Параметры» и​ вводе первых букв​

​ название можно дополнительно​

lumpics.ru

Отображение и скрытие всплывающих подсказок

​Нажмите​ сделал. Всё работает.​ а не только​ получать «всплывающие предупреждения»​Application.EnableEvents = True​ выделяем попеременно нужные​ Для этого щелкаем​

ScreenTip

​ отображение данных другого​ выпадающий список в​ названием «Разработчик», куда​Скачать последнюю версию​KuklP​ так что смотрите​ свойства и исходный​

Enhanced ScreenTip

В этой статье

​ в открывшемся поле​ с клавиатуры(!), чего​

​ использовать функцию​

Отображение и скрытие всплывающих подсказок

  1. ​ОК​​ Единственный минус(лично для​​ то, что видите,​

  2. ​ при каждом открытии.​​End If​​ ячейки.​

  3. ​ правой кнопкой мыши​​ листа или файла,​​ Экселе. В программе​

  4. ​ мы и перемещаемся.​​ Excel​​: Гляньте и мой.​​ на моих и​​ текст (двойной клик​

    • ​ «Тип данных» установите​​ нет у всех​ИНДЕКС (INDEX)​.​ меня),это то .что​ End Sub там​Private Sub Workbook_Open()​End Sub​Теперь создадим второй раскрывающийся​ по названию листа​ наличие функции поиска​ можно создавать, как​

    • ​ Чертим в Microsoft​Самым удобным, и одновременно​​ На работе как-то​ дорабатывайте сами.​ левой клавишей мыши​ строку «Список». При​ остальных способов. Приятным​, которая умеет выводить​

    • ​Все! Наслаждайтесь!​​ сначала частично открывется​ есть.​Dim ws As​Не забываем менять диапазоны​ список. В нем​ и переходим по​

​ и зависимости.​

Видео о всплывающих подсказках

​ простые выпадающие списки,​​ Excel список, который​ наиболее функциональным способом​ маялся.​хз​ на ComboBox сразу​ этом в том​

​ моментом, также, является​

support.office.com

Выпадающий список в Excel с помощью инструментов или макросов

​ содержимое нужной по​Важный нюанс. В качестве​ страница Эксель ,а​Апострофф​ Worksheet, rn As​ на «свои». Списки​ должны отражаться те​

​ вкладке «Исходный текст».​Путь: меню «Данные» -​ так и зависимые.​ должен стать выпадающим​ создания выпадающего списка,​Юрий М​: спасибо юрий м​ создает процедурку ComboBox1_Change()​ же окне появится​ возможность настройки визуального​

Создание раскрывающегося списка

​ счету ячейки из​ источника данных для​ после всплывающее окно.​:​ Range, r As​

Создание выпадающего списка.

​ создаем классическим способом.​ слова, которые соответствуют​ Либо одновременно нажимаем​ инструмент «Проверка данных»​

  1. ​ При этом, можно​ меню. Затем, кликаем​Ввод значений.
  2. ​ является метод, основанный​: Что-то Вы путаете:​ это практически что​ — действия при​Проверка вводимых значений.
  3. ​ поле «Источник». Введите​ представления (цветов, шрифтов​ диапазона:​ списка может выступать​

Имя диапазона. Раскрывающийся список.

​ А можно сделать,чтоб​rinat_n​

​ Long​

Выпадающий список в Excel с подстановкой данных

​ А всю остальную​ выбранному в первом​ клавиши Alt +​ — вкладка «Параметры».​ использовать различные методы​ на Ленте на​ на построении отдельного​ в списке нет​

  1. ​ надо​ изменении содержимого). Соответственно​ в него символ​ и т.д.)​Форматировать как таблицу.
  2. ​Этот способ частично напоминает​ и динамический именованный​ наоборот? При запуске​, так Вы или​Dim NG As​ работу будут делать​ списке названию. Если​ F11. Копируем код​ Тип данных –​ создания. Выбор зависит​ значок «Вставить», и​ списка данных.​ НИ ОДНОГО дня​Выпадающий список.
  3. ​Hugo​ перед использованием, ComboBox​ «=» и имя​При использовании этого способа,​ предыдущий. Основное отличие​ диапазон, например прайс-лист.​ *.xlsx ,чтобы сначала​ код полностью скопируйте,​

Ввод значения в источник.

​ Long, NR As​ макросы.​ «Деревья», то «граб»,​

Список и таблица.

​ (только вставьте свои​ «Список».​

Добавлено значение елка.

​ от конкретного предназначения​

Удалено значение береза.

​ среди появившихся элементов​Прежде всего, делаем таблицу-заготовку,​ рождения в 2010​

​: Т.е. это будут​ необходимо заполнить значениями,​ выделенного диапазона, которое​ также возможно указывать​ в том, что​ Тогда при дописывании​ всплывало окно, а​

Ввод данных из списка.

  1. ​ или допишите этот​ Long​На вкладке «Разработчик» находим​ «дуб» и т.д.​ параметры).Private Sub Worksheet_Change(ByVal​Создание имени.
  2. ​Ввести значения, из которых​ списка, целей его​ в группе «Элемент​ где собираемся использовать​ году. О каких​
  3. ​ извещения о ещё​ грубо говоря опиши​ было задано ячейкам​ в качестве​ на лист добавляется​ новых товаров к​ потом уже открывалась​Сообщение об ошибке.
  4. ​ END SUB, раз​Dim D As​ инструмент «Вставить» –​ Вводим в поле​ Target As Range)​ будет складываться выпадающий​ создания, области применения,​ ActiveX» выбираем «Поле​ выпадающее меню, а​ «родяться» Вы говорите?​ не родившихся клиентах?​ процедуру заполнения (макрос)​ с данными. Для​ListFillRange​ не элемент управления,​ прайсу, они будут​ книга?!​ Бэйсику это нужно.​ Date​ «ActiveX». Здесь нам​ «Источник» функцию вида​ Dim lReply As​ список, можно разными​ и т.д.​ со списком».​ также делаем отдельным​openid.mail.ru/mail/vlad3622340​ :)​ например:​ применения параметров нажмите​не только одномерные​ а элемент ActiveX​ автоматически добавляться к​
  5. ​[email protected]​rinat_n​Сообщение об ошибке.
  6. ​For Each ws​ нужна кнопка «Поле​ =ДВССЫЛ(E3). E3 –​ Long If Target.Cells.Count​ способами:​Автор: Максим Тютюшев​Кликаем по месту, где​ списком данные, которые​

Макрос.

​: Немного изменил вариант​А с другой​Код:​ «Enter» или «Ок».​ диапазоны. Можно, например​»Поле со списком»​

​ выпадающему списку. Еще​: Чтобы отображалась только​: Апострофф, StoTisteg, сорри.​

Выпадающий список в Excel с данными с другого листа/файла

​ In ThisWorkbook.Worksheets​ со списком» (ориентируемся​ ячейка с именем​ > 1 Then​Вручную через «точку-с-запятой» в​Всплывающие подсказки представляют собой​ должна быть ячейка​ в будущем включим​ Юрия.​ стороны, если клиентов​Private Sub ComboBox1_DropButtonClick()​

  1. ​ Это вариант самого​ задать диапазон из​из раскрывающегося набора​
  2. ​ одним часто используемым​ форма, добавьте в​ Действительно не правильно​

​Set rn =​ на всплывающие подсказки).​ первого диапазона.​ Exit Sub If​ поле «Источник».​ небольшие окна, в​ со списком. Как​ в это меню.​25.09.1990 считается :)​ 1000, то грубо​

Как сделать зависимые выпадающие списки

​With ComboBox1​

Три именованных диапазона.

​ простого выпадающего списка.​ двух столбцов и​ под кнопкой​ трюком для таких​ код строку:​ скопировал скрипт. Подскажите​ ws.UsedRange​Щелкаем по значку –​

  1. ​Бывает, когда из раскрывающегося​ Target.Address = «$C$2″​Ввести значения заранее. А​Список диапазонов.
  2. ​ которых выводится текст​ видите, форма списка​ Эти данные можно​openid.mail.ru/mail/vlad3622340​ в среднем в​Таблица со списком.
  3. ​.AddItem «Раз», 0​3​ нескольких строк, указав​Вставить (Insert)​ списков является создание​Application.Visible = False​ возможно ли в​rn.Interior.Pattern = xlNone​ становится активным «Режим​ списка необходимо выбрать​ Then If IsEmpty(Target)​ в качестве источника​ описания при наведении​Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    ​ появилась.​ размещать как на​: Вот файл​ день по 3,​.AddItem «Два», 1​

    1. ​Как сделать выпадающий​ дополнительно, что выводить​с вкладки​ связанных выпадающих списков​У кого мало времени​ также сделать в​For r =​ конструктора». Рисуем курсором​ сразу несколько элементов.​ Then Exit Sub​ указать диапазон ячеек​ указателя мыши на​Затем мы перемещаемся в​ этом же листе​хз​ итого если за​.AddItem «Три», 2​ список в экселе​ нужно два столбца​Разработчик (Developer)​ (когда содержимое одного​ и нужно быстро​ этом скрипте чтобы​ 3 To rn.Rows.Count​ (он становится «крестиком»)​ Рассмотрим пути реализации​
    2. ​ If WorksheetFunction.CountIf(Range(«Деревья»), Target)​ со списком.​ команду или элемент​ «Режим конструктора». Жмем​ документа, так и​: как мне еще​ 6 дней предупреждать​End With​При этом в​ (свойство​:​ списка меняется в​ ухватить суть -​ проверка проводилась циклически,​If IsDate(rn(r, «E»))​ небольшой прямоугольник –​ задачи.​ = 0 Then​Назначить имя для диапазона​
    3. ​ управления.​ на кнопку «Свойства​ на другом, если​ добавить клиентов после​ — каждый месидж​
      ​End Sub​ том же окне​
      ​ColumnCount​Механизм добавления тот же​
      ​ зависимости от выбора​ смотрим обучающее видео:​ по изменению и​ Then​
      ​ место будущего списка.​
      ​Создаем стандартный список с​
      ​ lReply = MsgBox("Добавить​
      ​ значений и в​
      ​Улучшенные всплывающие подсказки представляют​ элемента управления».​ вы не хотите,​
      ​ девятнадцатого​ на 18 фамилий...​Также заполненение ComboBox​
      ​ появится поле «Источник».​
      ​=2). Тогда можно получить​
      ​ - выбираем объект​
      ​ в другом).​Кому интересны подробности и​
      ​ по открытию документа​
      ​D = rn(r,​
      ​Жмем «Свойства» – открывается​

    ​ помощью инструмента «Проверка​ введенное имя «​ поле источник вписать​ собой окна большего​Открывается окно свойств элемента​ чтобы обе таблице​

    Выпадающий список с поиском

    1. ​Юрий М​Не просто всё​ можно повесить на​ Введите в него​ весьма привлекательные результаты,​ из списка и​Вставить ActiveX.
    2. ​Этот способ представляет собой​ нюансы всех описанных​ изменению​ «E»)​ перечень настроек.​ данных». Добавляем в​Элемент ActiveX.
    3. ​ & _ Target​ это имя.​Свойства ActiveX.
    4. ​ размера, которые содержат​ управления. В графе​ располагались визуально вместе.​: А зачем? Ведь​ это…​ открытие Документа…​ символ «=» и​ окупающие все потраченные​

    ​ рисуем его на​

    ​ вставку на лист​ способов — дальше​Апострофф​If D <​Вписываем диапазон в строку​ исходный код листа​ & » в​Любой из вариантов даст​ больше текста, чем​ «ListFillRange» вручную через​

    exceltable.com

Всплывающее окно как message box (Макросы/Sub)

​Выделяем данные, которые планируем​​ Вы писали, что​Юрий М​Валерий аникин​ имя выделенного диапазона,​ на дополнительные настройки​ листе. А вот​ нового объекта -​ по тексту.​: Можно.​ Date Then​ ListFillRange (руками). Ячейку,​ готовый макрос. Как​ выпадающий список?», vbYesNo​ такой результат.​ обычные подсказки, и​ двоеточие прописываем диапазон​ занести в раскрывающийся​ не работает как​: Конечно, нужно ставить​: в волрде такого​ которое было задано​ усилия:​ дальше начинаются серьезные​ элемента управления «поле​Один щелчок правой кнопкой​

​rinat_n​​’срок истек​​ куда будет выводиться​​ это делать, описано​ + vbQuestion) If​​ могут содержать ссылки​ ячеек таблицы, данные​
​ список. Кликаем правой​ надо :-)​ ограничения :-) но​ нет, но можно​ ячейкам с данными.​

​Способ 1.​​ отличия от предыдущего​ со списком» с​ мыши по пустой​: Апострофф, подскажите плиз​NR = NR​ выбранное значение –​ выше. С его​ lReply = vbYes​

​Необходимо сделать раскрывающийся список​​ на статьи справки.​ которой будут формировать​ кнопкой мыши, и​Просто скопируйте любую​
​ ведь я их​
​ сделать похожее: через​ Для применения установленных​Примитивный​ способа.​
​ последующей привязкой его​ ячейке под столбцом​ как сделать?​
​ + 1​ в строку LinkedCell.​
​ помощью справа от​ Then Range("Деревья").Cells(Range("Деревья").Rows.Count +​
​ со значениями из​Отображение и скрытие всплывающих​
​ пункты выпадающего списка.​
​ в контекстном меню​ ячейку столбца D.​
​ не знаю...​ сноску, через гиперссылку​
​ параметров нажмите «Enter»​Способ 2.​
​Во-первых, созданный выпадающий ActiveX​ к диапазонам на​
​ с данными, команда​
​StoTisteg​rn.Rows(r).Interior.Color = vbRed​
​ Для изменения шрифта​
​ выпадающего списка будут​ 1, 1) =​ динамического диапазона. Если​
​ подсказок​
​Далее, кликаем по ячейке,​ выбираем пункт «Присвоить​
​KuklP​
​Владимир​
​ (например будет открываться​
​ или «Ок». Это​
​Стандартный​
​ список может находится​ листе. Для этого:​ контекстного меню​
​: Тот же код​ElseIf D -​ и размера –​ добавляться выбранные значения.Private​
​ Target End If​
​ вносятся изменения в​

​Видео о всплывающих подсказках​​ и в контекстном​respect

​ имя…».​​: Приветствую всех. Юр,​: Наверное правильнее будет​ тексовый документик) ,​

​ вариант самого простого​​Способ 3.​​ в двух принципиально​​В Excel 2007/2010 откройте​Выбрать из раскрывающегося списка​ в модуль изменяемого​ 100 < Date​:)

​ Font.​​ Sub Worksheet_Change(ByVal Target​ End If End​ имеющийся диапазон (добавляются​

​Откройте вкладку​​ меню последовательно переходим​​Открывается форма создания имени.​​ а если клиентов​ отметить тех людей,​​ либо через рецензирование​​ выпадающего списка.​Элемент управления​

​ разных состояниях -​​ вкладку​​(Choose from drop-down list)​​ листа в Private​ Then​Скачать пример выпадающего списка​ As Range) On​ If End Sub​ или удаляются данные),​

​Файл​​ по пунктам «Объект​ В поле «Имя»​ 1000 будет? Это​ у которых ДР​

​ (но заметки будут​​4​Способ 4.​ режиме отладки, когда​Разработчик (Developer)​или нажать сочетание​ Sub Worksheet_Change(ByVal Target​’на подходе​При вводе первых букв​

​ Error Resume Next​​Сохраняем, установив тип файла​​ они автоматически отражаются​​.​ ComboBox» и «Edit».​ вписываем любое удобное​ ж крыша свалится​ через 3-5 дней.​

​ всегда торчать)​​Как сделать выпадающий​Элемент ActiveX​ можно настраивать его​. В более ранних​ клавиш​ As Range)​NG = NG​ с клавиатуры высвечиваются​ If Not Intersect(Target,​ «с поддержкой макросов».​

​ в раскрывающемся списке.​​Выберите​

​Выпадающий список в Microsoft​​ наименование, по которому​ ерзать по списку.​

​ Т.к. клиентов туева​​хз​ список в экселе​Сложность​ параметры и свойства,​ версиях — панель​

​ALT+стрелка вниз​​rinat_n​ + 1​ подходящие элементы. И​ Range(«Е2:Е9»)) Is Nothing​Переходим на лист со​Выделяем диапазон для выпадающего​Параметры​ Excel готов.​ будем узнавать данный​ Я сначала тоже​:)

​ хуча и перечисление​​: как сделать всплывающее​В Excel существует​низкая​ двигать его по​ инструментов​. Способ не работает,​: StoTisteg, еще вопрос​rn.Rows(r).Interior.Color = vbYellow​ это далеко не​ And Target.Cells.Count =​ списком. Вкладка «Разработчик»​ списка. В главном​.​Чтобы сделать и другие​ список. Но, это​ на эти грабли​

​ всех будет неудобоваримым.​​ окно, например о​ возможности для задания​средняя​:'(
​ листу и менять​Формы (Forms)​:D
​ если ячейку и​respect​ возможно ли в​End If​

excelworld.ru

Всплывающее окно при открытии файла

​ все приятные моменты​​ 1 Then Application.EnableEvents​
​ — «Код» -​ меню находим инструмент​Откройте раздел​ ячейки с выпадающим​ наименование должно начинаться​ стал. Но потом​—​ наступлении дня рождения​
​ выпадающего списка, обладающего​

​высокая​​ размеры и -​

​через меню​​ столбец с данными​ скрипте прописать чтобы​End If​ данного инструмента. Здесь​ = False If​ «Макросы». Сочетание клавиш​

​ «Форматировать как таблицу».​​Общие​ списком, просто становимся​ обязательно с буквы.​ сделал то, что​66022​ для столбца​ более сложной конструкцией.​Возможность настройки шрифта, цвета​ режиме ввода, когда​Вид — Панели инструментов​ отделяет хотя бы​ при всплывающем окне​Next r​

​ можно настраивать визуальное​​ Len(Target.Offset(0, 1)) =​ для быстрого вызова​Откроются стили. Выбираем любой.​
​.​

planetaexcel.ru

Выпадающий список в ячейке листа

Видео

​ на нижний правый​ Можно также вписать​ выложил.​хз​

​R Dmitry​ Для этого применяют​ и т.д.​ единственное, что можно​

Способ 1. Примитивный

​ — Формы (View​ одна пустая строка​ выходил список просроченных​Next ws​ представление информации, указывать​​ 0 Then Target.Offset(0,​ ​ – Alt +​​ Для решения нашей​В разделе​​ край готовой ячейки,​​ примечание, но это​Юрий М​: а вот как​: ​ элемент управления под​нет​ — выбирать из​ — Toolbars -​ или вам нужен​

Как вȎxcel сделать всплывающее окно

Способ 2. Стандартный

  1. ​ инструкций? Если напиши​If NG +​ в качестве источника​ 1) = Target​
  2. ​ F8. Выбираем нужное​ задачи дизайн не​Параметры пользовательского интерфейса​ нажимаем кнопку мыши,​​ не обязательно. Жмем​: Привет! А я​ ​ поставить что бы​Уважаемый хз(надеюсь не​​ названием «поле со​нет​ него данные. Переключение​​ Forms)​​ товар, который еще​​ пожалуйста как сделать​​ NR > 0​​ сразу два столбца.​​ Else Target.End(xlToRight).Offset(0, 1)​ имя. Нажимаем «Выполнить».​ имеет значения. Наличие​в списке​ и протягиваем вниз.​ на кнопку «OK».​​ чё? Я не​​ он выдовал не​​ «хрен знает»)​​ списком» , вставляемый​
  3. ​да​ между этими режимами​. Если этой вкладки​ ни разу не​ и какой скрипт.​ Then​​rinat_n​ = Target End​​Когда мы введем в​​ заголовка (шапки) важно.​​Стиль всплывающих подсказок​​Также, в программе Excel​​Переходим во вкладку «Данные»​ виноват. Можно список​​ только тех людей​​вы бы примерчик​ на рабочий лист​​Количество отображаемых строк​​ происходит с помощью​

Как вȎxcel сделать всплывающее окно

​ не видно, то​​ вводился выше:​​ Спасибо большое, мастерам​

​MsgBox «Просроченные выделены​

Как вȎxcel сделать всплывающее окно

​: Добрый день форумчане.​ If Target.ClearContents Application.EnableEvents​ пустую ячейку выпадающего​ В нашем примере​выберите нужный параметр.​ можно создавать связанные​ программы Microsoft Excel.​ отсортировать… Будем надеяться,​ у которые родились​ приложили где дата​ Excel. Чтобы его​всегда 8​ кнопки​ нажмите кнопку​Выделите ячейки с данными,​ да своего дела​ красным, с истекающим​ Помогите решить одну​

Способ 3. Элемент управления

​ = True End​ списка новое наименование,​ это ячейка А1​Показывать расширенные всплывающие подсказки.​ выпадающие списки. Это​ Выделяем область таблицы,​ что у автора​ в 2010, но​

  1. ​ как должно сработать​ установить, откройте в​​любое​​Режим Конструктора (Design Mode)​Офис — Параметры Excel​ которые должны попасть​​StoTisteg​​ сроком (через 100​​ задачку в части​ If End Sub​ появится сообщение: «Добавить​ со словом «Деревья».​​     Этот параметр включает​ такие списки, когда​ где собираемся применять​​ небольшой коллектив. В​ ​ и других?​​ да и примеров​​ меню пункты «Вид»​Быстрый поиск элемента по​на вкладке​-​ в выпадающий список​: Это лучше не​
  2. ​ дней) — желтым.»​ excel. Есть документ​Чтобы выбранные значения показывались​ введенное имя баобаб​ То есть нужно​​ отображение как улучшенных,​​ при выборе одного​
    Как вȎxcel сделать всплывающее окно
    ​ выпадающий список. Жмем​ противном случаем действительно​Hugo​ на форуме полно,​
  3. ​ , затем «Панели​ первым буквам​Разработчик (Developer)​​флажок​​ (например, наименованиями товаров).​ Msgbox’ом, а формой.​
  • ​End If​​ в котором есть​ снизу, вставляем другой​ в выпадающий список?».​ выбрать стиль таблицы​
  • ​ так и обычных​​ значения из списка,​ на кнопку «Проверка​ нужны другие варианты.​: Вы хотели сказать​
  • ​ помню месяц назад​​ инструментов» и подпункт​нет​:​Отображать вкладку Разработчик на​Если у вас Excel​ Если достаточно вывести​End Sub​

​ список документов с​​ код обработчика.Private Sub​​Нажмем «Да» и добавиться​

​ со строкой заголовка.​ всплывающих подсказок для​ в другой графе​ данных», расположенную на​​Макрос уже готов. Запускается​​ — которые родятся​ делали похожее :)​ «Формы».​нет​

Как вȎxcel сделать всплывающее окно

Способ 4. Элемент ActiveX

​Если эта кнопка нажата,​ ленте (Office Button​ 2003 или старше​ «красные», то много​rinat_n​ датами начала действия​​ Worksheet_Change(ByVal Target As​​ еще одна строка​ Получаем следующий вид​​ вывода дополнительных сведений​​ предлагается выбрать соответствующие​​ Ленте.​​ кнопкой. Но нужно​

Как вȎxcel сделать всплывающее окно

​ в 2010? :)​R Dmitry​5​да​ то мы можем​ — Excel Options​ — выберите в​ изменений не потребуется,​

​: Апострофф, спасибо большое.​ и окончания действия​ Range) On Error​ со значением «баобаб».​ диапазона:​ о командах, например​ ему параметры. Например,​Открывается окно проверки вводимых​ сделать так, чтобы​хз​: От безделия даже​Выберите на открывшейся​Необходимость использования дополнительной функции​ настраивать параметры выпадающего​ — Show Developer​ меню​ в начале чистим​​rinat_n​​ инструкций. Вот необходимо​​ Resume Next If​​Когда значения для выпадающего​

Как вȎxcel сделать всплывающее окно

​Ставим курсор в ячейку,​ имени команды, сочетания​ при выборе в​ значений. Во вкладке​ после нажатия кнопки​​: нет это окно​​ нашел вам то​ панели элементов управления​ИНДЕКС​ списка, нажав соседнюю​

Как вȎxcel сделать всплывающее окно

​ Tab in the​Вставка — Имя -​ ListBox формы, вместо​

  • ​: Апострофф, Данный скрипт​​ создать напоминалку (всплывающее​ Not Intersect(Target, Range(«Н2:К2»))​ списка расположены на​ где будет находиться​ клавиш, графических элементов​ списке продуктов картофеля,​ «Параметры» в поле​ и выполнения макроса​
  • ​ всплывает на тех​​ что hugo делал​ значок «поле со​нет​ кнопку​
  • ​ Ribbon)​​ Присвоить​ (или после) rn.Rows®.Interior.Color​
  • ​ добавляем в макрос​​ окно) допустим за​ Is Nothing And​ другом листе или​ выпадающий список. Открываем​
  • ​ и ссылок на​​ предлагается выбрать как​​ «Тип данных» выбираем​​ вышло окно, на​ кто родиться только​

​39353​ списком» — это​да​Свойства (Properties)​Найдите значок выпадающего списка​(Insert — Name -​ = vbRed добавляем​ и все?​ неделю до окончания​ Target.Cells.Count = 1​ в другой книге,​ параметры инструмента «Проверка​ статьи справки. Он​

​ меры измерения килограммы​ параметр «Список». В​ котором будет написано,​​ в 2010 а​​KuklP​ и есть выпадающий​нет​, которая откроет окно​ среди элементов управления​ Define),​ в него параметр​StoTisteg​​ действия инструкции. Подскажите​​ Then Application.EnableEvents =​ стандартный способ не​ данных» (выше описан​ выбран по умолчанию.​ и граммы, а​

Как вȎxcel сделать всплывающее окно

Итоговая сравнительная таблица всех способов

​ поле «Источник» ставим​​ типа «Я макрос,​ ​ на остальных кто​​: Привет, Дим. Там​ ​ список. Нарисуйте мышкой​​Возможность создания связанных выпадающих​ ​ со списком всех​​ форм (не ActiveX!).​
​если Excel 2007​ ​ истёкшей инструкции, после​ ​:​ ​ такое возможно сделать​
​ False If Len(Target.Offset(1,​ работает. Решить задачу​ ​ путь). В поле​ ​Не показывать расширенные всплывающие​ ​ при выборе масла​
​ знак равно, и​ ​ я сам все​ ​ например в 1990​
​ вроде о будильнике​ прямоугольник в форме​ ​ списков​ ​ возможных настроек для​ ​ Ориентируйтесь по всплывающим​
​ или новее -​​ завершения цикла по​ ​Апострофф​ ​ в excel в​ ​ 0)) = 0​
​ можно с помощью​ «Источник» прописываем такую​ ​ подсказки.​ ​ растительного – литры​ ​ сразу без пробелов​

planetaexcel.ru

Знатокам Word, Excel. Как сделать при наведении мышки на слово или элемент выпадающее сообщение?

​ сделал»)​​ не всплывает​ речь шла. А​ поля. Выделите правой​нет​

​ выделенного объекта:​​ подсказкам -​
​ откройте вкладку​ ws проверяем число​
​, я бы на​ виде скрипта как​ Then Target.Offset(1, 0)​ функции ДВССЫЛ: она​ функцию:​     Этот параметр отключает​ и миллилитры.​ пишем имя списка,​Александр погребняк​Юрий М​ тут напоминалка о​ кнопкой мыши нарисованный​да​
​Самые нужные и полезные​
​Поле со списком​Формулы (Formulas)​
​ Item’ов в ListBox’е​ Activate повесил на​ message box?. К​ = Target Else​ сформирует правильную ссылку​Протестируем. Вот наша таблица​ отображение улучшенных всплывающих​Прежде всего, подготовим таблицу,​ которое присвоили ему​: Макросы — выделяешь​: Посмотрите здесь:​ ДР нужна. Я​ список и укажите​нет​ свойства, которые можно​:​и воспользуйтесь кнопкой​ и если больше​ случай месяцами не​ сообщению прикладываю частичку​ Target.End(xlDown).Offset(1, 0) =​ на внешний источник​ со списком на​ подсказок для вывода​
​ где будут располагаться​
​ выше. Жмем на​ свой макрос -​
​Если бы Вы​ такую выкладывал как-то.​ команду «Формат объекта…».​Anatoliy​ и нужно настроить:​Щелкните по значку​Диспетчер имен (Name Manager)​ нуля, вызываем форму.​ перезагружаемого компа​ файла. Данная напоминалка​ Target End If​ информации.​ одном листе:​
​ только имени команды​
​ выпадающие списки, и​ кнопку «OK».​
​ Изменить — перед​ обратили внимание на​Юрий М​6​: Кликаешь правой клавишей​ListFillRange​ и нарисуйте небольшой​, затем​rinat_n​rinat_n​ нужна, так как​ Target.ClearContents Application.EnableEvents =​Делаем активной ячейку, куда​Добавим в таблицу новое​ и, возможно, сочетания​
​ отдельно сделаем списки​
​Выпадающий список готов. Теперь,​ последней строчкой End​ моё сообщение 23.09.2010,​: Я тоже что-то​Как сделать выпадающий​ мыши/выбираешь из списка,​- диапазон ячеек,​ горизонтальный прямоугольник -​Создать​: StoTisteg, напишите пожалуйста​: StoTisteg, подскажите Activate​
​ периодически забывается обновить​
​ True End If​ хотим поместить раскрывающийся​
​ значение «елка».​ клавиш.​ с наименованием продуктов​ при нажатии на​ Sub вставляешь MsgBox​ 22:47 и набрали​ такое делал. Помню,​ список в экселе​ вставить примечание, так​ откуда берутся данные​ будущий список.​. Введите имя (можно​ скрипт, дабы мне​ куда добавить? чтоб​ инструкцию. Также возможно​ End Sub​ список.​Теперь удалим значение «береза».​Не показывать всплывающие подсказки.​ и мер измерения.​
​ кнопку у каждой​
​ («Работа макроса окончена»).​ в поиске -​ там ещё была​В появившемся диалоговом​ же можешь гиперссылку.​ для списка. Выделить​Щелкните по нарисованному списку​ любое, но обязательно​ не совершить ошибок​ месяц проверку проводил.​ ли напоминалку разнести​Чтобы выбираемые значения отображались​Открываем параметры проверки данных.​Осуществить задуманное нам помогла​     Этот параметр отключает​Присваиваем каждому из списков​ ячейки указанного диапазона​ Отправил пример на​ мигалка, то сами​ мигалка (ZVI помог).​ окне в поле​
​Антон​
​ мышью диапазон он​
​ правой кнопкой мыши​
​ без пробелов и​
​Программирование мне не​
​Апострофф​
​ на несколько страниц​
​ в одной ячейке,​
​ В поле «Источник»​ «умная таблица», которая​ отображение как улучшенных,​

​ именованный диапазон, как​​ будет появляться список​ почту​ нашли бы это.​ В поиск -​ «Формировать список по​: 1​ не даст, надо​ и выберите команду​ начать с буквы!)​

всплывающее окно

​ дано​​:​ в одной книге?​ разделенные любым знаком​ вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).​

​ легка «расширяется», меняется.​​ так и обычных​
​ это мы уже​ параметров, среди которых​
​Pauk​Владимир​ напоминалка. Выбор есть​ диапазону» задайте нужный​Как сделать выпадающий​ просто вписать его​Формат объекта (Format control)​

​ для выделенного диапазона​​А Вам​rinat_n​Апострофф​

​ препинания, применим такой​

​Имя файла, из которого​​Теперь сделаем так, чтобы​ всплывающих подсказок для​ делали ранее с​ можно выбрать любой​: Тут поищи​: А откуда Вы​

​ :-)​​ диапазон ячеек. Для​ список в экселе​ руками с клавиатуры​. В появившемся диалоговом​ (например​за ответы и​, Вы читать умеете?​

​:​​ модуль.​ берется информация для​ можно было вводить​ вывода только имени​

​ обычными выпадающими списками.​​ для добавления в​άηϑρέΰ βσλσRσδζκμù ҂ 483643853​ знаете, кто и​vikttur​ этого мышкой выделите​В таблице или​ (например, Лист2!A1:A5)​

​ окне задайте​​Товары​ пути решений​ или​rinat_n​Private Sub Worksheet_Change(ByVal​
​ списка, заключено в​ новые значения прямо​

​ команды.​​В первой ячейке создаём​ ячейку.​
​: MsgBox в помощь​ когда родится в​: Я таких примеров​ ячейки, которые должны​

​ списке выделите ячейки​​LinkedCell​Формировать список по диапазону​). Нажмите​

​AchilleS​​THISWORKBOOK​, непонятно что у​ Target As Range)​ квадратные скобки. Этот​
​ в ячейку с​В начало страницы​ список точно таким​Второй способ предполагает создание​Abram pupkin​ будущем?​ не встречал. У​ попасть в данный​ с теми данными,​
​- связанная ячейка,​- выделите ячейки​

​ОК​​: Добрый день!​, если не по​ вас в столбце​On Error Resume​

​ файл должен быть​​ этим списком. И​Примечание:​ же образом, как​ выпадающего списка с​: Функция Msgbox выводит​хз​ каждого столбца свой?​

​ выпадающий список Excel.​
​ которые вы хотите​

​ куда будет выводиться​​ с наименованиями товаров,​.​Подскажите, пожалуйста, как​ нашенскому.​ Е — дата​ Next​ открыт. Если книга​

​ данные автоматически добавлялись​​  В видео показан​ делали это ранее,​ помощью инструментов разработчика,​

​ на экран сообщение.​​: вот именно я​ :)​ В поле «Связь​ поместить в выпадающий​ выбранный из списка​ которые должны попасть​Выделите ячейки (можно сразу​

​ сделать так, чтобы​​StoTisteg​
​ последнего пересмотра или​If Not Intersect(Target,​ с нужными значениями​ в диапазон.​ пользовательский интерфейс Office​ через проверку данных.​ а именно с​

​Скопируй и вставь​​ не знаю когда​Guest​ с ячейкой» установите​ список. В меню​

​ элемент​​ в список​ несколько), в которых​ при открытии определенного​:​

​ дата следующего пересмотра.​​ Range(«C2:C5»)) Is Nothing​ находится в другой​Сформируем именованный диапазон. Путь:​ 2010, однако оно​

​Во второй ячейке тоже​​ использованием ActiveX. По​ после макроса :​ у этих клиентов​: мне надо когда​ номер ячейки для​ выберите пункты «Вставка»​

​ListRows​​Связь с ячейкой​ хотите получить выпадающий​ файла появлялось окошко​rinat_n​

​Если последнего, то​​ And Target.Cells.Count =​ папке, нужно указывать​ «Формулы» — «Диспетчер​

​ хорошо демонстрирует работу​​ запускаем окно проверки​ умолчанию, функции инструментов​MsgBox » Все​ день рождение​ заходиш в фаил​ вывода порядкового номера​

​ — «Имя» -​​- количество отображаемых​- укажите ячейку​
​ список и выберите​

​ с определенной информацией​​, всё тот же​

​ какого рожна там​​ 1 Then​ путь полностью.​ имен» — «Создать».​

​ аналогичных функций и​​ данных, но в​ разработчика отсутствуют, поэтому​ готово !» &​Юрий М​
​ что бы всплывало​ элемента, выбранного в​

​ «Присвоить». Далее, в​​ строк​ куда нужно выводить​ в меню (на​ (например, инструкцией к​ код в точности​ делает формула, да​Application.EnableEvents = False​Возьмем три именованных диапазона:​ Вводим уникальное название​ в Office 2013.​

​ графе «Источник» вводим​​ нам, прежде всего,​ vbLf & «​: хз, Вы мой​ окно автоматически что​ списке. Задайте требуемое​ запрашиваемом поле, введите​Font​ порядковый номер выбранного​

planetaexcel.ru

Как сделать всплывающее окно в EXcel так, чтобы по окончанию работы макроса вышло маленькое сообщение «Расчет окончен»

​ вкладке)​ тому, что находится​ туда же, только​ ещё и кривая​newVal = Target​Это обязательное условие. Выше​ диапазона – ОК.​В начало страницы​ функцию «=ДВССЫЛ» и​ нужно будет их​

​ Макрос решил вашу​​ мой второй файл​ у одного из​ количество строк создаваемого​ имя для выделенного​- шрифт, размер,​ пользователем элемента.​Данные — Проверка (Data​ в файле).​

​ вместо Private Sub​​ к тому же?​

​Application.Undo​​ описано, как сделать​

​Создаем раскрывающийся список в​​Под выпадающим списком понимается​ адрес первой ячейки.​
​ включить. Для этого,​ проблему «​
​ из темы, указанной​ клиентов сегодня день​ списка. Кнопка «Ок»​ диапазона и нажмите​ начертание (курсив, подчеркивание​

​Количество строк списка​

Содержание

    • 0.1 Использование окон ввода данных
    • 0.2 Функция InputBox в VBA
    • 0.3 Метод Excel InputBox
    • 0.4 Функция VBA MsgBox
    • 0.5 Метод Excel GetOpenFilename
    • 0.6 Метод Excel GetSaveAsFilename
    • 0.7 Получение имени папки
    • 0.8 Отображение диалоговых окон Excel
    • 0.9 Отображение формы ввода данных
    • 0.10 Создание собственной вкладки Шаблон
    • 0.11 Работа с пользовательской книгой по умолчанию
  • 1 Ввод данных с помощью диалогового окна
    • 1.1 Листинг 3.12. Диалоговое окно ввода данных
    • 1.2 Листинг 3.13. Значение по умолчанию

В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.

Рис. 1. Работа процедуры GetName

Скачать заметку в формате Word или pdf, примеры в архиве

Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.

Использование окон ввода данных

Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.

Функция InputBox в VBA

Функция имеет следующий синтаксис:

InputBox(запрос )

  • Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
  • Заголовок. Определяет заголовок окна ввода (необязательный параметр).
  • По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
  • xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
  • Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).

Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.

Процедура GetName запрашивает у пользователя полное имя (имя и фамилию). Затем программа выделяет имя и отображает приветствие в окне сообщения (см. рис. 1; код функции можно найти в файле VBA inputbox.xlsm).

Sub GetName()

    Dim UserName As String

    Dim FirstSpace As Integer

    Do Until UserName «»

        UserName = InputBox(«Укажите имя и фамилию: «, _

            «Назовите себя»)

    Loop

    FirstSpace = InStr(UserName, » «)

    If FirstSpace 0 Then

        UserName = Left(UserName, FirstSpace — 1)

    End If

    MsgBox «Привет » & UserName

End Sub

Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.

Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.

В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.

Sub GetWord()

    Dim TheWord As String

    Dim p As String

    Dim t As String

    p = Range(«A1»)

    t = «Какое слово пропущено?»

    TheWord = InputBox(prompt:=p, Title:=t)

    If UCase(TheWord) = «ВОДОКАЧКУ» Then

        MsgBox «Верно.»

    Else

        MsgBox «Не верно.»

    End If

End Sub

Рис. 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 завершит процедуру.

Sub EraseRange()

    Dim UserRange As Range

    On Error GoTo Canceled

    Set UserRange = Application.InputBox _

        (Prompt:=»Удаляемый диапазон:», _

        Title:=»Удаление диапазона», _

        Default:=Selection.Address, _

        Type:=8)

    UserRange.Clear

    UserRange.Select

Canceled:

End Sub

Рис. 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).

Sub MsgBoxDemo()

    MsgBox «При выполнении макроса ошибок не произошло.»

End Sub

Чтобы получить результат из окна сообщения, присвойте возвращаемое функцией MsgBox значение переменной. В следующем коде используется ряд встроенных констант (рис. 7), которые упрощают управление возвращаемыми функцией MsgBox значениями.

Sub GetAnswer()

    Dim Ans As Integer

    Ans = MsgBox(«Продолжать?», vbYesNo)

    Select Case Ans

        Case vbYes

            ‘ …

        Case vbNo

            ‘ …

    End Select

End Sub

Рис. 7. Константы, возвращаемые MsgBox

Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.

Sub GetAnswer2()

    If MsgBox(«Продолжать?», vbYesNo) = vbYes Then

‘ …

    Else

‘ …

    End If

End Sub

В следующем примере функции используется комбинация констант для отображения окна сообщения с кнопками Да, Нет и знаком вопроса (рис. 8). Вторая кнопка (Нет) используется по умолчанию. Для простоты константы добавлены в переменную Config.

Private Function ContinueProcedure() As Boolean

   Dim Config As Integer

   Dim Ans As Integer

   Config = vbYesNo + vbQuestion + vbDefaultButton2

   Ans = MsgBox(«Произошла ошибка. Продолжить?», Config)

   If Ans = vbYes Then ContinueProcedure = True _

      Else ContinueProcedure = False

End Function

Рис. 8. Параметр Кнопки функции MsgBox определяет кнопки, которые отображаются в окне сообщения

В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор

If Not ContinueProcedure() Then Exit Sub

вызывает функцию ContinueProcedure (которая отображает окно сообщения). Если функция возвращает значение ЛОЖЬ (т.е. пользователь щелкнул на кнопке Нет), то процедура будет завершена. В противном случае выполняется следующий оператор.

Если в сообщении необходимо указать разрыв строки (рис. 9), воспользуйтесь константой vbCrLf (или vbNewLine):

Sub MultiLine()

    Dim Msg As String

    Msg = «Это первая строка.» & vbCrLf & vbNewLine

    Msg = Msg & «Вторая строка.» & vbCrLf

    Msg = Msg & «Третья строка.»

    MsgBox Msg

End Sub

Рис. 9. Разбиение сообщения на несколько строк

Для включения в сообщение символа табуляции применяется константа vbTab. В процедуре ShowRange окно сообщения используется для отображения диапазона значений размером 10 строк на 3 столбца — ячейки А1:С10 (рис. 10). В этом случае столбцы разделены с помощью константы vbTab. Новые строки вставляются с помощью константы vbCrLf. Функция MsgBox принимает в качестве параметра строку, длина которой не превышает 1023 символов. Такая длина задает ограничение на количество ячеек, которое можно отобразить в сообщении.

Sub ShowRange()

    Dim Msg As String

    Dim r As Integer, c As Integer

    Msg = «»

    For r = 1 To 10

        For c = 1 To 3

            Msg = Msg & Cells(r, c).Text

            If c 3 Then Msg = Msg & vbTab

            Next c

            Msg = Msg & vbCrLf

        Next r

    MsgBox Msg

End Sub

Рис. 10. Текст в этом окне сообщения содержит символы табуляции и разрыва строк

Метод Excel GetOpenFilename

Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):

Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)

  • Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
  • Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
  • Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
  • Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.

Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: "Все файлы (*.*),*.*". Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.

В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.

Filt = «Текстовые файлы (*.txt),*.txt,» & _

   «Файлы Lotus (*.prn),*.prn,» & _

   «Файлы, разделенные запятой (*.csv),*.csv,» & _

   «Файлы ASCII (*.asc),*.asc,» & _

   «Все файлы (*.*),*.*»

В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).

Sub GetImportFileName()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

‘   Настройка списка фильтров

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «Все файлы (*.*),*.*»

‘   Отображает *.* по умолчанию

    FilterIndex = 3

‘   Настройка заголовка диалогового окна

    Title = «как сделать диалоговое окно в excel»

‘   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title)

‘   При отмене выйти из окна

    If FileName = False Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

‘   Отображение полного имени и пути

    MsgBox «Вы выбрали » & FileName

End Sub

На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).

Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл

В следующем примере пользователь может, удерживая нажатыми клавиши и , выбрать в окне несколько файлов. Обратите внимание, что событие использования кнопки Отмена определяется по наличию переменной массива FileName. Если пользователь не щелкнул на кнопке Отмена, то результирующий массив будет состоять как минимум из одного элемента. В этом примере список выбранных файлов отображается в окне сообщения.

Sub GetImportFileName2()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

    Dim i As Integer

    Dim Msg As String

‘   Установка списка фильтров файлов

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «All Files (*.*),*.*»

‘   Отображает *.* по умолчанию

    FilterIndex = 5

‘   Настройка заголовка диалогового окна

    Title = «как сделать диалоговое окно в excel»

‘   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title, _

         MultiSelect:=True)

‘   Выход в случае отмены работы с диалоговым окном

    If Not IsArray(FileName) Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

‘   Отображение полного пути и имени файлов

    For i = LBound(FileName) To UBound(FileName)

        Msg = Msg & FileName(i) & vbCrLf

    Next i

    MsgBox «Было выбрано:» & vbCrLf & Msg

End Sub

Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.

Метод Excel GetSaveAsFilename

Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):

Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)

  • Начальное_имя. Указывает предполагаемое имя файла.
  • Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
  • Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
  • Заголовок. Определяет текст заголовка диалогового окна.

Получение имени папки

Для того чтобы получить имя файла, проще всего воспользоваться описанным выше методом GetOpenFileName. Но если нужно получить лишь имя папки (без названия файла), лучше воспользоваться методом объекта Excel FileDialog. Следующая процедура отображает диалоговое окно, в котором можно выбрать папку (см. также файл get directory.xlsm). С помощью функции MsgBox отображается имя выбранной папки (или сообщение Отменено).

Sub GetAFolder()

    With Application.FileDialog(msoFileDialogFolderPicker)

        .InitialFileName = Application.DefaultFilePath & «»

        .Title = «как сделать диалоговое окно в excel»

        .Show

        If .SelectedItems.Count = 0 Then

            MsgBox «Отменено»

        Else

            MsgBox .SelectedItems(1)

        End If

    End With

End Sub

Объект 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 отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.

  1. Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
  2. На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
  3. В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
  4. В появившемся списке выберите параметр Форма.
  5. Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
  6. Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.

После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.

Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу . Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.

По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.

Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.

Sub DisplayDataForm()

    Range(«A1»).Select

    ActiveSheet.ShowDataForm

End Sub

По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 387–403.

Если вы часто выполняете одни и те же задачи или используете один и тот же макет таблицы, можете сконструировать собственную вкладку Шаблон (Template) в стандартном диалоговом окне Шаблон (New) Excel, создав для себя удобную отправную точку.

Представьте, что у вас есть электронная таблица, содержащая дни года, и формулы, вычисляющие различные данные для этих дней. Вы прекрасно отформатировали ее, применив цвета и вставив формулы, и эту таблицу вы будете использовать ежедневно. Чтобы не изобретать каждый день колесо (или копировать и удалять ненужные данные), вы можете сэкономить много сил и времени, создав шаблон.

Шаблоны Excel для листов и книг обеспечивают вам хороший старт для новых проектов, позволяя пропустить шаги по первоначальной настройке, форматированию, построению формул и т. д. Чтобы сохранить шаблонный лист, нужно всего лишь открыть новую книгу, удалить все, за исключением одного листа, а затем создать базовый шаблон, который вы и будете использовать. Закончив, выберите команду Файл → Сохранить как (File → Save As) и в списке Тип файла (Туре) диалогового окна Сохранение документа (Save As) выберите Шаблон (Template). Если вы хотите создать шаблон рабочей книги, которая должна содержать несколько листов, снова создайте новую книгу, внесите все необходимые изменения и сохраните ее как шаблон командой Файл → Сохранить как (File → Save As).

Сохранив шаблон, вы сможете создавать его копии. Для этого нужно выполнить команду Файл → Создать (File → New) и выбрать шаблон рабочей книги или правой кнопкой мыши щелкнуть ярлычок листа и в контекстном меню выбрать команду Добавить (Insert), а затем вставить из шаблона новый лист. Разве не здорово было бы иметь эти шаблоны прямо в стандартном диалоговом окне Excel Добавить шаблон (Insert Template) или задавать желаемую книгу книгой по умолчанию? Это можно сделать, создав собственную вкладку Шаблон (Template).

Для этого трюка на вашем компьютере должна быть установлена одна копия Excel. Если у вас установлено несколько копий или версий Excel, он может не работать.

Создание собственной вкладки Шаблон

Если у вас огромное количество шаблонов — книг, листов или и того и другого, — которые вы регулярно используете, их можно сгруппировать прямо в диалоговом окне Добавить (Insert).

В любой книге выберите команду Файл → Сохранить как (File → Save As), затем в списке Тип файла (Files of Type) выберите Шаблон (*.xlt) (Template (*.xlt)). По умолчанию Excel запишет шаблон в стандартную папку, где хранятся созданные вами шаблоны. Если у вас еще нет такой папки, создайте ее, нажав кнопку Создать папку (New Folder).

Выберите команду Файл → Создать (File → New). В Excel 2000 и более поздних версиях в раскрывшемся диалоговом окне Создание документа (New Workbook) перейдите на вкладку Общие (General Templates). Теперь в открывшемся диалоговом окне вы должны увидеть только что созданную вкладку. Если вы сохраняли шаблоны книг и листов в эту папку, они также должны появиться в диалоговом окне.

Работа с пользовательской книгой по умолчанию

При запуске Excel раскрывается пустая книга по умолчанию, которая называется Книга1 (Book1) и содержит три пустых листа. Это прекрасно, если каждый раз вы хотите все начинать с нуля. Однако если вы такой же человек, как мы, то, вероятно, предпочитаете одну книгу остальным. Так, для нас запуск Excel включает отмену книги по умолчанию и поиск нужной нам обычной книги. Определенно, было бы удобнее, чтобы нужная книга открывалась каждый раз сама и была готова к работе.

Для этого необходимо сохранить книгу по умолчанию (шаблон) в папке XLSTART (обычно она находится в C:Documents and SettingВладелецApplication DataMicrosoftExcelXLSTART в Windows и в Applications/Microsoft Office X/Office/Startup/Excel на Mac OS X). После этого Excel по умолчанию будет открывать ту книгу или книги, которые найдет в этой папке.

В папке XLSTART создается и хранится ваша личная книга макросов, когда вы записываете макрос. Личная книга макросов — это скрытая книга. Открывать собственные скрытые книги можно и в фоновом режиме. Для этого нужно открыть нужную книгу, выбрать команду Окно → Скрыть (Window → Hide), закрыть Excel и щелкнуть на кнопке Да (Yes), чтобы сохранить изменения в скрытой книге. После этого необходимо скопировать эту книгу в папку XLSTART. Все книги, которые вы скрываете и помещаете в папку XLSTART, будут открываться как скрытые книги при каждом запуске Excel. Не следует помещать в эту папку слишком много книг, особенно больших, так как все они будут открываться при запуске Excel. Слишком большое количество открытых книг может существенно снизить производительность Excel.

Конечно, если вы решите перейти обратно к пустой книге по умолчанию, нужно будет всего лишь удалить соответствующую книгу или шаблон книги из папки Автозагрузка (Startup).

Книга: Excel. Трюки и эффекты

Ввод данных с помощью диалогового окна

Ввод данных с помощью диалогового окна

В процессе работы могут возникать ситуации, когда для ввода данных целесообразно использовать вызываемое отдельно диалоговое окно. Решить эту задачу поможет следующий макрос (листинг 3.12).

Листинг 3.12. Диалоговое окно ввода данных

Sub InputDialog()

Dim strInput As String

‘ Вызов стандартного диалогового окна ввода данных

strInput = InputBox(«Введите данные», «Ввод данных»)

End Sub

При запуске этого макроса на экране отобразится диалоговое окно (рис. 3.5).

как сделать диалоговое окно в excel

Рис. 3.5. Диалоговое окно ввода данных

При необходимости можно задать текст, который будет отображаться в поле ввода диалогового окна по умолчанию (с помощью аргумента Default), а также определить параметры расположения окна на экране (аргументы XPos и YPos). Пример соответствующего макроса приведен в листинге 3.13.

Листинг 3.13. Значение по умолчанию

Sub NewInputDialog()

Dim strInput As String

‘ Вызов стандартного диалогового окна ввода со значением _

по умолчанию

strInput = InputBox(«Введите данные», «Ввод данных», _

«Значение по умолчанию», 200, 200)

End Sub

Окно, выводимое на экран при выполнении данного макроса, представлено на рис. 3.6.

как сделать диалоговое окно в excel

Рис. 3.6. Текст по умолчанию в окне ввода данных

Работа в данном окне ведется по обычным правилам Windows.

Понравилась статья? Поделить с друзьями:
  • Как в excel сформировать по годам
  • Как в excel сумму ячеек разделить на число
  • Как в excel суммы как на экране
  • Как в excel сумму цифрами перевести в сумму прописью
  • Как в excel сумму разделить на количество ячеек