Как открыть диалоговое окно в excel
Несомненно каждый разработчик делает работу простого пользователя хоть немного, но проще. И конечно, порой просто необходима обратная связь от пользователя при выполнении некоторых программ. О ней и хочу сегодня рассказать.
Что я имею ввиду: есть ситуации, когда необходимо:
- сообщить пользователю о выполнении кода;
- получить от пользователя подтверждение на выполнение того или иного действия;
- запросить какие-то данные(число, текст для поиска, диапазон поиска и т.п.).
Простейшие запросы и подтверждения можно сделать при помощи уже встроенных диалоговых окон.
Из основных можно выделить три типа:
MsgBox - окно информирования пользователя с возможностью запроса действия (Да, Нет, Отмена и т.п.);
InputBox - окно запроса текстовой информации от пользователя (текст для поиска, дата, число и т.п.);
Application.InputBox - чуть более расширенная версия InputBox с возможностью указания не только текста и чисел, но и выделения диапазона ячеек (например для указания ячеек, в которых осуществлять поиск значения или которые необходимо закрасить).
MsgBox "Обработка завершена"
Все остальные параметры указывать не обязательно, но их использование несколько расширяет возможности данного диалогового окна.
Buttons - указывается тип выводимых кнопок и стиль окна. По умолчанию применяется vbOKOnly - одна только кнопка Ок:
Константы Buttons могут быть объединены между собой. Ниже приведен код, который показывает диалоговое окно с возможностью выбора одного из трех вариантов - Прервать, Повтор, Пропустить:
'--------------------------------------------------------------------------------------- ' Procedure : test ' DateTime : 19.10.2014 19:24 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов: ' Прервать, Повтор, Пропустить ' По умолчанию выделена кнопка Прервать, т.к. иное не указано '--------------------------------------------------------------------------------------- Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion) Select Case lRetVal Case vbAbort '3/Прервать/Abort Exit Sub 'выходим из процедуры Case vbRetry '4/Повтор/Retry GoTo Retry_ 'переход на метку Retry_ Case vbIgnore '5/Пропустить/Ignore End Select End Sub
Следующий код показывает то же окно, но по умолчанию выделяет кнопку Пропустить
'--------------------------------------------------------------------------------------- ' Procedure : test ' DateTime : 19.10.2014 19:24 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов: ' Прервать, Повтор, Пропустить ' По умолчанию выделена кнопка Пропустить(3-я по счету - значит vbDefaultButton3) '--------------------------------------------------------------------------------------- Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion + vbDefaultButton3) Select Case lRetVal Case vbAbort '3/Прервать/Abort Exit Sub 'выходим из процедуры Case vbRetry '4/Повтор/Retry GoTo Retry_ 'переход на метку Retry_ Case vbIgnore '5/Пропустить/Ignore End Select End Sub
Вместо текстового представления констант можно применить их числовые значения:
Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", 2 + 32 + 512) Select Case lRetVal Case 3 'vbAbort Exit Sub 'выходим из процедуры Case 4 'vbRetry GoTo Retry_ 'переход на метку Retry_ Case 5 'vbIgnore End Select End Sub
Нетрудно после этого предположить, что можно указать просто сумму данных чисел:
MsgBox "Обработка завершена", 546
Доступные константы значений возврата:
Константа | Значение | Нажатая кнопка |
---|---|---|
vboK | 1 | ОК |
vbCancel | 2 | Отмена |
vbAbort | 3 | Прервать |
vbRetry | 4 | Повтор |
vblgnore | 5 | Пропустить |
vbYes | 6 | Да |
vbNo | 7 | Нет |
Title - указывается текст заголовка окна. Например, можно указать либо что это ошибка, либо имя своего приложения:
MsgBox "Обработка завершена", vbOKOnly, "Мое приложение"
HelpFile - указывается имя файла-справки в формате .HLP. Применяется, если параметр Buttons указан как vbMsgBoxHelpButton. Файл справки должен существовать.
Context - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть. Указывается только если указан параметр HelpFile.
Небольшой практический пример применения простого диалогового окна MsgBox.
Цель процедуры(макроса): очистить все ячейки листа.
Согласитесь, что неплохо бы перед этим запросить у пользователя решение - он согласен с этим и это является обдуманным решением или случайностью?
'--------------------------------------------------------------------------------------- ' Procedure : ClearRange ' DateTime : 19.10.2014 20:06 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : '--------------------------------------------------------------------------------------- Sub ClearRange() Dim lRetVal As Long 'для получения выбранного значения lRetVal = MsgBox("Все данные выделенных ячеек будут удалены." & _ Chr(10) & "Действительно хотите продолжить?", _ vbYesNo + vbQuestion, "Запрос на выполнение") If lRetVal = vbNo Then Exit Sub 'выходим из процедуры без выполнения End If Selection.Clear End Sub
Так же на странице Полезные программы для Excel и VBA можно найти программу MsgBox Generator, которая просто и наглядно формирует коды показа MsgBox.
MsgBox, автоматически закрываемый по истечении указанного времени
Диалог MsgBox удобен, если надо проинформировать пользователя о каких-то событиях или предоставить ему выбор Да или Нет. Но в тоже время есть один недостаток: этот диалог не закроется, пока пользователь не нажмет хоть какую-то кнопку. Но бывает необходимо просто проинформировать и закрыть окно независимо от реакции пользователя. Показали окно, подождали секунд 5-7 и даже если пользователь ничего не нажал - закрыли окно и продолжили выполнение кода. Стандартно такой опции в MsgBox нет. Однако можно использовать функции API(это встроенные в ОС Windows функции, которые можно вызывать из любого языка программирования).
Код такого диалога:
Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long Sub AutoCloseMsgBox() Const lSeconds As Long = 5 MessageBoxTimeOut 0, "Отчет сформирован. Это окно закроется автоматически через 5 секунд", "www.excel-vba.ru", _ vbInformation + vbOKOnly, 0&, lSeconds * 1000 End Sub
Основную роль здесь играет строка:
Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
Sub AutoCloseMsgBox() Const lSeconds As Long = 10 Dim retval retval = MessageBoxTimeOut(0, "Файлы обработаны. Вывести список?" & vbNewLine & _ "Если действие не будет выбрано окно закроется через 10 секунд", "www.excel-vba.ru", _ vbInformation + vbYesNo, 0&, lSeconds * 1000) If retval = 6 Then 'была нажата кнопка Да(Yes) 'выводим отчет Else 'была нажата кнопка Нет(No) или окно закрылось само 'другое действие End If End Sub
ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ - INPUTBOX
InputBox позволяет запросить от пользователя любую текстовую информацию.
InputBox Promt, [Title], [DefaultValue], [XPos], [YPos], [HelpFile], [Context]
Так же как и с MsgBox обязательным аргументом для указания является только Promt - это тот текст, который будет расположен непосредственно на самой форме диалога. Как правило это пояснение, что должен ввести пользователь.
Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите значение для поиска:", "Запрос данных", "") If vRetVal = "" Then Exit Sub 'завершаем процедуру, если строка пуста
Title - текст, отображаемый в заголовке окна. В приведенном выше примере это "Запрос данных".
DefaultValue - значение, которое будет показано в поле ввода до указания значения пользователем. Как правило оно указывается в случаях, когда требуемое значение изменяется редко по запросу пользователя, но возможность такую оставить все же требуется. Пример: необходимо по нажатию кнопки удалять всегда столбец 5. Но иногда столбец в отчете смещается и требуется запрашивать у пользователя реальный номер столбца:
Sub DelCols() Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", 5) 'используем Val для преобразования текста vRetVal в число 'Val() преобразует число как текст в число. 'Если указан текст(например "третий") - он будет преобразован в 0 vRetVal = Val(vRetVal) If Val(vRetVal) = 0 Then MsgBox "Номер столбца должен быть целым числом больше нуля!", vbCritical, "DelCols" Exit Sub End If Columns(vRetVal).Delete End Sub
Важно знать: InputBox всегда возвращает только текст. Даже если указать - 5 - он вернет "5". В некоторых случаях это может привести к ошибке типов данных, поэтому я привел выше один из примеров преобразования типов данных к нужному.
Так же по прошествии какого-то времени появится вопрос, как отследить нажатие кнопки Отмена. Ведь ориентир на vRetVal = "" не всегда верен, иногда надо принять пустое значение(в случаях, скажем, замены значений) и отследить именно нажатие Отмена. Сделать это можно так:
vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", "") If StrPtr(vRetVal) = 0 Then MsgBox "Нажата кнопка Отмена. Процедура прервана", vbCritical, "DelCols" Exit Sub End If
Больше всего вопросов здесь явно вызовет StrPtr . Эта специальная функция VBA, которая указывает, что переданы некие строковые данные. Если никаких данных не передавалось(а в случае с нажатием кнопки Отмена так и есть) указатель вернет 0. Если какие-то данные были переданы или нажата кнопка Ок(автоматом будет передана строка нулевой длины) - указатель StrPtr вернет значение отличное от нуля.
XPos - положение окна InputBox в твипах по горизонтали относительно левого края экрана. Следует учитывать, что именно относительно экрана, а не окна Excel.
YPos - положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile - указывается имя файла-справки в формате .HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна - Help, которая и отвечает за вызов справки.
Context - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
В дополнение приведу классический пример применения InputBox - выполнение процедуры только после введения пароля:
Sub ClearAllCells() Dim vRetVal vRetVal = InputBox("Введите пароль:", "Авторизация", "") If StrPtr(vRetVal) = 0 Then 'Нажата кнопка Отмена Exit Sub End If 'если пароль неверный - завершаем процедуру без выполнения действий If vRetVal <> "1234" Then MsgBox "Введенный пароль неверный", vbCritical, "ClearAllCells" Exit Sub End If 'будет выполнено только если введен правильный пароль - 1234 'полная очистка всех ячеек активного листа ActiveSheet.Cells.Clear End Sub
Private Sub Workbook_Open() 'ThisWorkbook - Обращение к книге с кодом 'Но из модуля самой книги можно обращаться и проще - Me ThisWorkbook.Visible = False Dim user As String, lastrow As Long 'цикл, пока не будут указаны данные пользователя Do While user = "" user = InputBox("Введите имя пользователя:", "Авторизация", "") If StrPtr(user) = 0 Then MsgBox "Приложение будет закрыто", vbCritical, "Авторизация" ThisWorkbook.Close Exit Sub End If If user = "" Then MsgBox "Не указано имя пользователя!", vbCritical, "Авторизация" End If Loop With ThisWorkbook.Worksheets("LOG") 'получаем последнюю заполненную ячейку на листе "LOG" lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row 'записываем имя пользователя .Cells(lastrow + 1, 1) = user 'записываем время входа .Cells(lastrow + 1, 2) = Now End With End Sub
Что важно: этот код записывается в модуль ЭтаКнига(ThisWorkbook) и тогда при любом открытии книги будет появляться запрос на имя пользователя.
Так же некоторые примеры применения InputBox можно найти в статьях на сайте. Например:
Как удалить строки по условию?
Как массово изменить гиперссылки?
ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ - APPLICATION.INPUTBOX
В общем-то данный диалог мало отличается от обычного InputBox, за исключением типов возвращаемых данных. У данного диалога намного богаче функционал определения типов данных.
InputBox Promt, [Title], [DefaultValue], [Left], [Top], [HelpFile], [HelpContextID], [Type]
почти все параметры аналогичны таким же параметрам в InputBox.
Promt - текст, отображаемый на самой форме. Иначе говоря - сама суть показа диалога.
Title - текст, отображаемый в заголовке окна. В приведенном выше примере это "Запрос данных".
DefaultValue - значение, которое будет показано в поле ввода до указания значения пользователем.
Left - положение окна InputBox в поинтах по горизонтали относительно левого края экрана. В отличие от простого InputBox положение определяется на основании расположения самого окна Excel, а не экрана.
Top - положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile - указывается имя файла-справки в формате .HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна - Help, которая и отвечает за вызов справки. Сам вызов справки осуществляется путем нажатия на иконку со знаком вопроса в заголовке диалога.
HelpContextID - целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
Type - целое число. Указывается одно из предустановленных значений, указывающих диалогу Application.InputBox тип данных, которые предполагается получить от пользователя. Ниже приведен листинг кода, демонстрирующий запрос данных всех типов с описанием ограничений и нюансов.
Конечно, чаще всего используют Type:=8 , т.к. это избавляет от необходимости рисования своих форм и прочих заморочек для запроса указания диапазона от пользователя. Еще раз обращаю внимание, что для Type:=8 необходим ключевой оператор присвоения Set , т.к. в результате необходимо получить именно диапазон(т.е. объект). Ниже приведена процедура, которая запрашивает диапазон для очистки и корректно обрабатывает ситуацию при нажатии кнопки Отмена(т.е. не показывает никаких ошибок пользователю, а просто не выполняется). Стандартно при нажатии Отмена процедура завершается с ошибкой VBA вида Type Mismatch , что не очень грамотно с точки зрения взаимодействия с пользователем - он не должен видеть внутренние ошибки:
'--------------------------------------------------------------------------------------- ' Procedure : ClearCells ' DateTime : 19.10.2014 22:53 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : ' Запрашиваем диапазон ячеек для очистки. ' По умолчанию заносится диапазон выделенных на момент запуска ячеек '--------------------------------------------------------------------------------------- Sub ClearCells() Dim vRetVal 'для получения выбранного значения On Error Resume Next Set vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", Selection.Address, Type:=8) If vRetVal Is Nothing Then 'нажата кнопка Отмена - диапазон не выбран MsgBox "Отмена выполнения", vbCritical, "Нет данных" Exit Sub 'завершаем процедуру, т.к. ячейки не выбраны End If 'диапазон выбран - очищаем ячейки vRetVal.Clear End Sub
Конечно, можно еще много чего, наверное, рассказать - но я на данном этапе завершу. Если будут еще мысли - обязательно дополню статью.
Добрый день! В этом уроке начинаем рассматривать работу с диалоговыми окнами. Далее будет еще один урок на эту тему. Я специально не стал их объединять чтобы не превратить все в кашу. Начнем с простого.
Выполнение многих команд Excel приводит к появлению на экране диалоговых окон.
С помощью диалогового окна Excel получает дополнительную информацию о выбранной вами команде. Например, если вы выбрали команду Рецензирование - Изменения- Защитить лист, то Excel не сможет выполнить эту команду до тех пор, пока не узнает, какую часть рабочего листа необходимо защитить от изменений. Поэтому при выборе данной команды Excel отобразит диалоговое окно Защита листа, показанное на рис. 1.
Рисунок 1.. Excel использует диалоговые окна для получения дополнительной информации от пользователя
В Excel присутствуют диалоговые окна двух основных типов:
■ Обычные диалоговые окна. Такие окна называются модальными. Если открыто диалоговое окно такого типа, то вы не сможете выполнять в рабочей книге никакие другие операции до тех пор, пока не закроете его. Когда в ответ на введенную вами команду появляется такое диалоговое окно, вы должны установить ряд дополнительных параметров с помощью его элементов управления. Сделав это, для продолжения работы щелкните на кнопке ОК или нажмите клавишу . Если передумаете, щелкните на кнопке Отмена или нажмите клавишу — тогда ничего не произойдет, словно диалоговое окно и не появлялось. Большинство диалоговых окон в Excel является окнами этого типа.
■ Незакрывающиеся диалоговые окна. Такие окна называются немодальными. Они подобны панелям инструментов — если окно открыто, то вы можете продолжать работать в Excel, а окно будет по-прежнему открытым. Установка параметров в таких диалоговых окнах приводит к немедленному выполнению каких-либо действий Excel (не требуется нажимать клавишу ). Например, если вы занимаетесь форматированием диаграмм, то результат задания каких-либо параметров в диалоговом окне Формат немедленно отображается на диаграмме. Немодальные диалоговые окна вместо кнопки ОК имеют кнопку Закрыть.
В строке заголовка отображается название программы (Microsoft Excel) и имя документа. Документ Excel называется Рабочей книгой. При сохранении файлу по умолчанию присваивается имя Книга1 , расширение – xlsx.
Кнопка "Office"
В левом верхнем углу окна расположена Кнопка "Office". При нажатии кнопки отображается меню основных команд для работы с файлами, список последних документов, а также команда для настройки параметров приложения (например, Параметры Excel ).
Лента
Главный элемент пользовательского интерфейса Microsoft Excel 007 представляет собой ленту , которая идет вдоль верхней части окна каждого приложения, вместо традиционных меню и панелей инструментов.
С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся списки, счетчики, флажки и т.п.). Команды упорядочены в логические группы, собранные на вкладках.
Заменить ленту панелями инструментов или меню предыдущих версий приложения Microsoft Excel нельзя. Удалить ленту также нельзя. Однако чтобы увеличить рабочую область, ленту можно скрыть (свернуть).
- В меню выберите команду Свернуть ленту.
- Лента будет скрыта, названия вкладок останутся
Чтобы быстро свернуть ленту, дважды щелкните имя активной вкладки. Для восстановления ленты дважды щелкните вкладку.
Чтобы свернуть или восстановить ленту, можно также нажать комбинацию клавиш Ctrl + F1.
Содержание ленты для каждой вкладки постоянно и неизменно. Нельзя ни добавить какой-либо элемент на вкладку, ни удалить его оттуда.
Внешний вид ленты зависит от ширины окна: чем больше ширина, тем подробнее отображаются элементы вкладки
На рисунках приведено отображение ленты вкладки Вставка при разной ширине окна.
По умолчанию в окне отображается семь постоянных вкладок:
Главная , Вставка , Разметка страницы , Ссылки , Рассылки , Рецензирование , Вид .
Для перехода к нужной вкладке достаточно щелкнуть по ее названию (имени).
Каждая вкладка связана с видом выполняемого действия. Например, вкладка Главная , которая открывается по умолчанию после запуска, содержит элементы, которые могут понадобиться на начальном этапе работы, когда необходимо набрать, отредактировать и отформатировать текст.
Вкладка Разметка страницы предназначена для установки параметров страниц документов.
Вкладка Вставка предназначена для вставки в документы различных объектов. И так далее.
Кроме того, можно отобразить еще одну вкладку Разработчик .
- Щелкните по кнопке Office
- Выберите команду Параметры Excel .
- В разделе Основные диалогового окна Параметры Excel установите соответствующий флажок
Элементы управления
Элементы управления на лентах вкладках объединены в группы, связанные с видом выполняемого действия. Например, на вкладке Главная имеются группы для работы с буфером обмена, установки параметров шрифта, установки параметров абзацев, работы со стилями и редактирования .
Элементами управления являются обычные кнопки, раскрывающиеся кнопки, списки, раскрывающиеся списки, счетчики, кнопки с меню, флажки, значки (кнопки) группы.
Щелчек по кнопке в правом нижнем углу группы открывает соответствующее окно диалога, например, для группы Шрифт откроется окно диалога Шрифт .
Для каждого элемента управления можно отобразить всплывающую подсказку о назначении этого элемента. Для этого достаточно навести на него и на некоторое время зафиксировать указатель мыши.
Панель быстрого доступа
Панель быстрого доступа по умолчанию расположена в верхней части окна Excel и предназначена для быстрого доступа к наиболее часто используемым функциям.
По умолчанию панель содержит всего три кнопки: Сохранить , Отменить , Вернуть ( Повторить ). Панель быстрого доступа можно настраивать, добавляя в нее новые элементы или удаляя существующие. Для этого надо проделать следующие действия:
- Нажать кнопку Настройка панели быстрого доступа .
- В меню выбрать наименование необходимого элемента. Элементы, отмеченные галочкой, уже присутствуют на панели.
- Для добавления элемента, отсутствующего в списке, выберите команду Другие команды.
- В разделе Настройка окна Параметры Excel в раскрывающемся списке Выбрать команды из выберите вкладку, в которой расположен добавляемый элемент, затем выделите элемент в списке и нажмите кнопку Добавить .
Для добавления на панель любого элемента из любой вкладки можно также щелкнуть по этому элементу правой кнопкой мыши и в контекстном меню выбрать команду Добавить на панель быстрого доступа .
Для удаления элемента из панели достаточно щелкнуть по нему правой кнопкой мыши и в контекстном меню выбрать команду Удалить с панели быстрого доступа.
Мини-панель инструментов
Мини-панель инструментов содержит основные наиболее часто используемые элементы для оформления данных.
В отличие от других приложений Office 2007 (Word, PowerPoint и др.) в Excel 2007 мини-панель не отображается автоматически при выделении фрагмента листа. Для отображения панели щелкните правой кнопкой по выделенной области.
Строка формул
Под панелями инструментов окна Excel расположена строка формул . В левой части этой строки отображается адрес текущей ячейки (или ее имя), в правой части – содержимое текущей ячейки.
Для просмотра и редактирования содержимого выделенной ячейки можно увеличить высоту строки формул. Для этого щелкните по кнопке Развернуть строку формул .
Если и в этом случае отображается не все содержимое ячейки, можно воспользоваться полосой прокрутки.
Рабочая область
Рабочая область каждого листа представляет собой таблицу.
Столбцы таблицы озаглавлены латинскими буквами и, далее, двух буквенными сочетаниями. Всего в рабочем листе – 16 384 столбцов (от А до XFD . После столбца Z идет столбец АА, после AZ — ВА и т.д.).
Строки нумеруются от 1 до 1048576.
Книга состоит из рабочих листов . Каждый рабочий лист имеет имя , которое отображается на его ярлыке . По умолчанию листы называются: Лист1 , Лист2 и т.д. Для активизации листа нужно щелкнуть на его ярлыке.
Количество листов, входящих изначально в рабочую книгу, задается в диалоговом окне Кнопка Office Параметры Excel раздел Основные, поле->счетчик –>Количество листов. При необходимости можно добавлять и удалять листы.
При большом количестве листов используются кнопки прокрутки, расположенные слева от ярлыков.
Минимальным элементом хранения данных является ячейка .
Адрес ячейки – это заголовок столбца и номер строки, на пересечении которых расположена ячейка, например, А2, В25, С65.
Одна из ячеек всегда является активной (текущей) и выделена рамкой . Ее адрес, т.е. буква столбца и номер строки, указывается в поле Имя . В зависимости от выбранного способа перемещения по рабочей книге активная ячейка может перемещаться или оставаться неизменной.
Заголовки строки и столбца, на пересечении которых находится активная ячейка, выделены темным цветом. По этому признаку легко определить активную ячейку. Операции ввода и редактирования данных всегда производятся в активной ячейке. Сделать активной другую ячейку (переместить курсорную рамку) можно несколькими способами:
- щелкнуть мышью в нужной ячейке;
- использовать навигационные клавиши
- нажать клавишу .
Клавиша переводит по умолчанию в нижнюю ячейку. Направление перемещения можно изменить командой меню Кнопка Office -> Параметры Excel -> вкладка Дополнительно , поле Переход к другой ячейке после нажатия клавиши ВВОД.
Пролистывание содержимого рабочего листа выполняют обычными способами, т.е., используя полосы прокрутки, а также клавиши >, , .
Перемещения по экрану
Обратиться к нужной ячейке можно, щелкнув по ней мышью. Кроме того, перемещаться по таблице можно с помощью полос прокрутки и с помощью клавиатуры:
- стрелки вверх, вниз, вправо, влево дают перемещение на одну ячейку в соответствующем направлении;
- клавиша - в первый столбец строки;
- сочетания клавиш + и + - соответственно, в начало таблицы и в последнюю использованную ячейку; соответственно, в первую и последнюю использованную ячейку столбца (если столбец не заполнен, то переход осуществляется в последнюю строку.столбца листа);- соответственно, в первую и последнюю использованную ячейку строки (если строка не заполнена, то переход осуществляется в последний столбец листа);
- , - на страницу вверх и вниз, соответственно.
- При нажатии клавиш + или + активизируются, соответственно, предыдущий и следующий рабочие листы книги.
Перейти на нужную ячейку, можно
- набрав её адрес в поле имени и нажав клавишу ;
- дав команду Главная->Редактирование ->Найти и выделить-> Перейти и ввести адрес ячейки;
- нажав клавишу F5.
Продолжение в следующей статье.
Другие мои публикации по информатике вы можете прочесть здесь:
- Microsoft office 2007. ТАБЛИЦЫ WORD.
- Microsoft Word. Продолжение
- Microsoft Word. Начало.
- Адресация в интернете.Решение заданий ЕГЭ
- Адресация в Интернете. Продолжение
- Адресация в интернете
- Интернет.История возникновения
- Решения примеров из ЕГЭ. Восстановить IP-адрес
- Компьютерные сети
- Информатика ЕГЭ системы счисления .
- Системы счисления .
- Системы счисления, переводы чисел из одной системы счисления в другую .
- Задания по логике ЕГЭ .
- Логика, теория .
- Основы логики .
- Про информатику
- Алгоритмическое мышление
- Информация и все про нее.
- Кодирование информации
- Кодирование информации(продолжение)
Делитесь своим мнением в комментариях. Подписывайтесь на мой канал. Ставьте лайки👍🏻 Делитесь статьей в соц.сетях.
Задумывались ли вы, как добавить гиперссылки, закладки или почтовые ссылки в Excel? Ответы прямо здесь.
Следующие шаги применимы к Excel для Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2019 для Mac, Excel 2016 для Mac, Excel для Mac 2011 и Excel Online.
Что такое гиперссылки, закладки и почтовые ссылки?
Во-первых, давайте уточним, что мы подразумеваем под каждым термином.
Гиперссылка позволяет открыть веб-страницу, выбрав ячейку на листе. Он также используется в Excel, чтобы обеспечить быстрый и легкий доступ к другим книгам Excel.
закладка создает ссылку на определенную область в текущем листе или на другой лист в том же файле Excel, используя ссылки на ячейки.
- Независимо от того, какой тип ссылки создан, он создается путем ввода необходимой информации в диалоговом окне Вставить гиперссылку.
- Как и в случае ссылок на веб-страницах, ссылки в Excel прикрепляются к тексту привязки, расположенному в ячейке листа.
- Добавление этого текста привязки перед открытием диалогового окна упрощает задачу создания ссылки, но ее также можно ввести после открытия диалогового окна.
Откройте диалоговое окно Вставить гиперссылку
Комбинация клавиш для открытия диалогового окна Вставить гиперссылку : Ctrl + K на ПК или команда + K на Mac.
- На листе Excel выберите ячейку, которая будет содержать гиперссылку.
- Введите слово, которое будет действовать как текст привязки, например «Таблицы» или «June_Sales.xlsx», и нажмите Enter .
- Выберите ячейку с текстом привязки во второй раз.
- Нажмите и удерживайте клавишу Ctrl (в Windows) или клавишу Команда⌘ (в Mac).
- Нажмите и отпустите клавишу K , чтобы открыть диалоговое окно «Вставить гиперссылку».
Как открыть диалоговое окно «Вставить гиперссылку» с помощью ленты
- На листе Excel выберите ячейку, которая будет содержать гиперссылку.
- Введите слово, которое будет действовать как текст привязки, например «Таблицы» или «June_Sales.xlsx», и нажмите Enter .
- Выберите ячейку с текстом привязки во второй раз.
- Выберите Вставить . (В Excel 2011 для Mac перейдите в меню Вставка .)
- Выберите Гиперссылка или Ссылка >Вставить ссылку в группе ссылок. Откроется диалоговое окно «Вставить гиперссылку».
Добавить гиперссылку в Excel
Вот как настроить гиперссылку для перехода на веб-страницу или в файл Excel.
Добавить гиперссылку на веб-страницу
- Откройте диалоговое окно Вставить гиперссылку , используя один из методов, описанных выше.
- Откройте вкладку Существующий файл или веб-страница .
- В строке Адрес введите полный URL-адрес.
- Выберите ОК , чтобы завершить гиперссылку и закрыть диалоговое окно.
Текст привязки в ячейке рабочего листа имеет синий цвет и подчеркнут, чтобы указать, что он содержит гиперссылку. Каждый раз, когда он выбран, он открывает назначенный веб-сайт в браузере по умолчанию.
Добавить гиперссылку в файл Excel
Примечание. Этот параметр недоступен в Excel Online.
- Откройте диалоговое окно Вставить гиперссылку .
- Откройте вкладку Существующий файл или веб-страница .
- Выберите Найти файл , чтобы открыть диалоговое окно «Ссылка на файл».
- Найдите, чтобы найти имя файла Excel, выберите файл и выберите ОК . Имя файла добавляется в строку «Адрес» в диалоговом окне «Вставить гиперссылку».
- Выберите ОК , чтобы завершить гиперссылку и закрыть диалоговое окно.
Текст привязки в ячейке рабочего листа меняется на синий и подчеркивается, чтобы указать, что он содержит гиперссылку. Всякий раз, когда он выбран, он открывает назначенную книгу Excel.
Создать закладку на тот же лист Excel
Закладка в Excel похожа на гиперссылку, за исключением того, что она используется для создания ссылки на определенную область на текущем листе или на другой лист в том же файле Excel.
В то время как гиперссылки используют имена файлов для создания ссылок на другие файлы Excel, закладки используют ссылки на ячейки и имена таблиц для создания ссылок.
Как создать закладку на тот же лист
В следующем примере создается закладка в другом месте на том же листе Excel.
- Введите имя в ячейке, которое будет использоваться в качестве текста привязки для закладки, и нажмите Enter .
- Выберите эту ячейку, чтобы сделать ее активной.
- Откройте диалоговое окно Вставить гиперссылку .
- Откройте вкладку Разместить в этом документе (или нажмите кнопку Разместить в этом документе в Excel Online).
- В текстовом поле Введите ссылку на ячейку введите ссылку на ячейку в другом месте на том же листе, например, «Z100».
- Выберите ОК , чтобы завершить закладку и закрыть диалоговое окно.
Текст привязки в ячейке рабочего листа теперь имеет синий цвет и подчеркнут, чтобы указать, что он содержит закладку.
Выберите закладку, и курсор активной ячейки переместится на ссылку на ячейку, введенную для закладки.
Создать закладку на другой лист
Создание закладок на разных листах в одном и том же файле Excel или рабочей книге имеет дополнительный шаг. Вы также определите лист назначения для закладки. Переименование рабочих листов может упростить создание закладок в файлах с большим количеством рабочих таблиц.
- Откройте многослойную книгу Excel или добавьте дополнительные листы в один файл листа.
- На одном из листов введите имя в ячейку, которое будет использоваться в качестве текста привязки для закладки.
- Выберите эту ячейку, чтобы сделать ее активной.
- Откройте диалоговое окно Вставить гиперссылку .
- Выберите вкладку Поместить в этот документ (или нажмите кнопку Поместить в этот документ в Excel Online).
- Введите ссылку на ячейку в поле Введите ссылку на ячейку .
- В поле Или выберите место в этом документе , выберите имя листа назначения. Безымянные листы идентифицируются как Sheet1, Sheet2, Sheet3 и так далее.
- Выберите ОК , чтобы завершить закладку и закрыть диалоговое окно.
Текст привязки в ячейке рабочего листа теперь имеет синий цвет и подчеркнут, чтобы указать, что он содержит закладку.
Выберите закладку, и курсор активной ячейки переместится на ссылку на ячейку на листе, введенном для закладки.
Вставьте ссылку Mailto в файл Excel
Текст привязки в ячейке рабочего листа теперь имеет синий цвет и подчеркнут, чтобы указать, что он содержит гиперссылку.
Удалить гиперссылку, не удаляя текст привязки
Когда вам больше не нужна гиперссылка, вы можете удалить информацию о ссылке, не удаляя текст, который служил якорем.
- Наведите указатель мыши на гиперссылку, которую нужно удалить. Стрелка указателя должна измениться на символ руки.
- Щелкните правой кнопкой мыши текст привязки гиперссылки, чтобы открыть контекстное меню.
- Выберите Удалить гиперссылку .
Синий цвет и подчеркивание должны быть удалены из текста привязки, чтобы указать, что гиперссылка была удалена.
В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]
Рис. 1. Работа процедуры GetName
Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.
Использование окон ввода данных
Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.
Функция InputBox в VBA
Функция имеет следующий синтаксис:
InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.
Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.
Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.
В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.
Рис. 2. Использование функции VBA inputBox, отображающей запрос
Метод Excel InputBox
Метод Excel InputBox по сравнению с функцией VBA InputBox предоставляет три преимущества:
- возможность задать тип возвращаемого значения;
- возможность указать диапазон листа путем выделения с помощью мыши;
- автоматическая проверка правильности введенных данных.
Метод InputBox имеет следующий синтаксис.
InputBox(запрос, [, заголовок], [, по_умолчанию], [, слева], [, сверху], [, справка, раздел], [, тип])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- Слева, сверху. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
- Тип. Указывает код типа данных, который будет возвращаться методом (необязательный параметр; значения см. рис. 3).
Рис. 3. Коды типов данных, возвращаемые методом Excel InputBox
Используя сумму приведенных выше значений, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным 3 (1 + 2 или число + текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Пользователь также можент выбрать диапазон на текущем рабочем листе.
В процедуре EraseRange используется метод InputBox. Пользователь может указать удаляемый диапазон (рис. 4). Адрес диапазона вводится в окно вручную, или выделяется мышью на листе. Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на ключевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена, то оператор On Error завершит процедуру.
Рис. 4. Пример использования метода InputBox для выбора диапазона
Рис. 5. Метод InputBox автоматически проверяет вводимые данные
Функция VBA MsgBox
MsgBox(запрос[, кнопки][, заголовок][, справка, раздел])
Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox
Рис. 7. Константы, возвращаемые MsgBox
Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.
В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор
If Not ContinueProcedure() Then Exit Sub
Метод Excel GetOpenFilename
Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):
Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)
- Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
- Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
- Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
- Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.
Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: " Все файлы (*.*),*.* " . Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.
В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.
В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).
На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).
Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл
Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.
Метод Excel GetSaveAsFilename
Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):
Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)
- Начальное_имя. Указывает предполагаемое имя файла.
- Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
- Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
- Заголовок. Определяет текст заголовка диалогового окна.
Получение имени папки
Объект 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):
Рис. 12. Диалоговое окно, отображаемое в результате выполнения указанного выше оператора
Метод ExecuteMso принимает лишь один аргумент, idMso, который представляет элемент управления ленты. К сожалению, сведения о многих параметрах в справочной системе отсутствуют.
В результате выполнения следующего оператора отображается вкладка Шрифт диалогового окна Формат ячеек:
На самом деле пользоваться объектами CommandBar не стоит, поскольку вряд ли они будут поддерживаться в будущих версиях Excel.
Отображение формы ввода данных
Многие пользователи применяют Excel для управления списками, информация в которых ранжирована по строкам. В Excel поддерживается простой способ работы с подобными типами данных с помощью встроенных форм ввода данных, которые могут создаваться автоматически. Подобная форма предназначена для работы как с обычным диапазоном, так и с диапазоном, оформленным в виде таблицы (с помощью команды Вставка –> Таблицы –> Таблица). Пример формы ввода данных показан на рис. 13 (см. также файл data form example.xlsm).
Рис. 13. Некоторые пользователи предпочитают применять встроенные формы ввода данных Excel для ввода сведений; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
В силу каких-то неизвестных причин на ленте Excel отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.
- Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
- На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
- В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
- В появившемся списке выберите параметр Форма.
- Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
- Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.
После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.
Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу . Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.
По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.
Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.
Читайте также: