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

Обновлено: 17.05.2024

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

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

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

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

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

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

Функция InputBox в VBA

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

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

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

Dim UserName As String

Dim FirstSpace As Integer

Do Until UserName «»

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

If FirstSpace 0 Then

UserName = Left(UserName, FirstSpace — 1)

MsgBox «Привет » & UserName

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

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

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

Dim TheWord As String

Dim p As String

Dim t As String

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

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

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

MsgBox «Не верно.»

Рис. 2. Использование функции VBA inputBox, отображающей запрос

Метод Excel InputBox

Метод Excel InputBox по сравнению с функцией VBA InputBox предоставляет три преимущества:

  • возможность задать тип возвращаемого значения;
  • возможность указать диапазон листа путем выделения с помощью мыши;
  • автоматическая проверка правильности введенных данных.

Метод InputBox имеет следующий синтаксис.

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

Рис. 3. Коды типов данных, возвращаемые методом Excel InputBox

Используя сумму приведенных выше значений, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным 3 (1 + 2 или число + текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Пользователь также можент выбрать диапазон на текущем рабочем листе.

В процедуре EraseRange используется метод InputBox. Пользователь может указать удаляемый диапазон (рис. 4). Адрес диапазона вводится в окно вручную, или выделяется мышью на листе. Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на ключевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена, то оператор On Error завершит процедуру.

Dim UserRange As Range

On Error GoTo Canceled

Set UserRange = Application.InputBox _

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

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

Рис. 4. Пример использования метода InputBox для выбора диапазона

Рис. 5. Метод InputBox автоматически проверяет вводимые данные

Функция VBA MsgBox

Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox

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

Dim Ans As Integer

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

Select Case Ans

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

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

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

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

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

If Not ContinueProcedure() Then Exit Sub




Dim Msg As String

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

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

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

Dim Msg As String

Dim r As Integer, c As Integer

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

If c 3 Then Msg = Msg & vbTab

Msg = Msg & vbCrLf

Метод 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).

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,» & _

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

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

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

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

FileName = Application.GetOpenFilename _

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

If FileName = False Then

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

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

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

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

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

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,» & _

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

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

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

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

FileName = Application.GetOpenFilename _

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

If Not IsArray(FileName) Then

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

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

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

Msg = Msg & FileName(i) & vbCrLf

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

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

Метод Excel GetSaveAsFilename

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

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

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

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

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

If .SelectedItems.Count = 0 Then

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

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

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

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

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

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

По материалам книги Джон Уокенбах. 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. Диалоговое окно ввода данных

Dim strInput As String

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

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

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

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

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

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

Dim strInput As String

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

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

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

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

Создание настраиваемого диалогового окна

Для создания настраиваемого диалогового окна используйте указанную ниже процедуру.

В меню Вставка в Visual Basic редакторе щелкните UserForm.

Найдите необходимое средство управления в панели инструментов и перетащите его в форму.

Щелкните правой кнопкой управления в режиме проектирования и щелкните Свойства, чтобы отобразить окно Свойства.

Вы можете инициализировать элементы управления в процедуре перед показом формы или добавить код в событие Initialize формы.

У всех элементов управления есть предопределенный набор событий. Например, на кнопке команды имеется событие Click, которое происходит при нажатии кнопки команды пользователем. Можно создать процедуры обработки событий, выполняемые при возникновении событий.

Чтобы отобразить UserForm, используйте метод Show.

Некоторые свойства можно присвоить во время выполнения. Изменения, внесенные пользователем в диалоговое окно, теряются при закрытии диалоговое окно.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Объект Диалоги (Excel)

Коллекция всех объектов диалогов в Microsoft Excel.

Заметки

Каждый объект Диалог представляет встроенное диалоговое окно. Невозможно создать новое встроенное диалоговое окно или добавить его в коллекцию. Единственное полезное, что можно сделать с объектом Dialog, это использовать его с помощью метода Show для отображения соответствующего диалоговое окно.

Библиотека Microsoft Excel Visual Basic включает встроенные константы для многих встроенных диалогов. Каждая константа формируется из префикса "xlDialog", за которым следует имя диалоговое окно. Например, константа диалоговое окно Apply Names — это xlDialogApplyNames, а константа диалоговое окно Find File — xlDialogFindFile. Эти константы являются членами типа XlBuiltinDialog.

Пример

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

Используйте диалоговые окне (индекс), где индекс — это встроенный постоянный, определяющий диалоговое окно, чтобы вернуть один объект Диалог. В следующем примере запускается встроенный диалоговое окно File Open.

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Создание настраиваемого диалогового окна

Для создания настраиваемого диалогового окна используйте указанную ниже процедуру.

В меню Вставка в Visual Basic редакторе щелкните UserForm.

Найдите необходимое средство управления в панели инструментов и перетащите его в форму.

Щелкните правой кнопкой управления в режиме проектирования и щелкните Свойства, чтобы отобразить окно Свойства.

Вы можете инициализировать элементы управления в процедуре перед показом формы или добавить код в событие Initialize формы.

У всех элементов управления есть предопределенный набор событий. Например, на кнопке команды имеется событие Click, которое происходит при нажатии кнопки команды пользователем. Можно создать процедуры обработки событий, выполняемые при возникновении событий.

Чтобы отобразить UserForm, используйте метод Show.

Некоторые свойства можно присвоить во время выполнения. Изменения, внесенные пользователем в диалоговое окно, теряются при закрытии диалоговое окно.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Урок Excel № 8 - Работа с диалоговыми окнами

Добрый день! В этом уроке начинаем рассматривать работу с диалоговыми окнами. Далее будет еще один урок на эту тему. Я специально не стал их объединять чтобы не превратить все в кашу. Начнем с простого.

Выполнение многих команд Excel приводит к появлению на экране диалоговых окон.

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

Рисунок 1.. Excel использует диалоговые окна для получения дополнительной информации от пользователя

В Excel присутствуют диалоговые окна двух основных типов:

■ Обычные диалоговые окна. Такие окна называются модальными. Если открыто диалоговое окно такого типа, то вы не сможете выполнять в рабочей книге никакие другие операции до тех пор, пока не закроете его. Когда в ответ на введенную вами команду появляется такое диалоговое окно, вы должны установить ряд дополнительных параметров с помощью его элементов управления. Сделав это, для продолжения работы щелкните на кнопке ОК или нажмите клавишу <Enter>. Если передумаете, щелкните на кнопке Отмена или нажмите клавишу <Esc> — тогда ничего не произойдет, словно диалоговое окно и не появлялось. Большинство диалоговых окон в Excel является окнами этого типа.

■ Незакрывающиеся диалоговые окна. Такие окна называются немодальными. Они подобны панелям инструментов — если окно открыто, то вы можете продолжать работать в Excel, а окно будет по-прежнему открытым. Установка параметров в таких диалоговых окнах приводит к немедленному выполнению каких-либо действий Excel (не требуется нажимать клавишу <Enter>). Например, если вы занимаетесь форматированием диаграмм, то результат задания каких-либо параметров в диалоговом окне Формат немедленно отображается на диаграмме. Немодальные диалоговые окна вместо кнопки ОК имеют кнопку Закрыть.

200+ горячих клавиш Excel в одном файле.

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

«Вам не нужно знать все функции. Просто освоите те, которые вам нужны регулярно, и у вас все получится отлично ».

Вот список из 200+ сочетаний клавиш Excel, которые сэкономят вам массу времени.

Работа с книгой

  • Создайте новую пустую книгу - Ctrl N
  • Отображает диалоговое окно «Открыть» для открытия / поиска файла - Ctrl+O
  • Сохраняет книгу с текущим именем файла, расположением и типом файла. - Ctrl+S
  • Открывает диалоговое окно «Сохранить как». - F12
  • Открывает окно предварительного просмотра. - Ctrl+F2
  • Развернуть или восстановить окно выбранной книги. - Ctrl+F10
  • Свернуть книгу. - Ctrl+F9
  • Перейти к следующей книге. - Ctrl+Tab
  • Перейти к предыдущей книге. - Ctrl+Shift+Tab
  • Закрыть текущую книгу. - Alt+F4

Редактирование ячеек

  • Редактировать активную ячейку. - F2
  • Начать новую строку в той же ячейке. - Alt+Enter
  • Выберите один символ справа от курсора. - Shift + →
  • Выберите один символ слева от курсора. - Shift + ←
  • Перейти на одно слово справа от курсора. - Ctrl + →
  • Перейти на одно слово слева от курсора. - Ctrl + ←
  • Выберите одно слово справа от курсора. - Ctrl + Shift + →
  • Выберите одно слово слева от курсора. - Ctrl + Shift + ←
  • Удалить один символ слева от курсора. - Backspace
  • Удалить символ справа от курсора. - Delete
  • Удалить до конца строки (от курсора). - Ctrl + Delete
  • Отменить запись. - Esc

Общие

  • Открывает справку. - F1
  • Повторяет последнюю команду или действие. - Ctrl+Y
  • Повторяет последнее действие. - F4
  • Отменить. - Ctrl+Z
  • Проверка орфографии. - F7
  • Применить фильтр данных. - Ctrl + Shift + L
  • Активировать фильтр (когда выбрана ячейка с фильтром). - Alt + ↓
  • Отобразить диалоговое окно "Перейти к". - F5
  • Отобразить диалоговое окно "Перейти к". - Ctrl + G
  • Пересчитать все книги. - F9
  • Рассчитать активный рабочий лист. - Shift + F9
  • Откройте меню печати. - Ctrl + P
  • Включите конечный режим. - End

Ввод данных

  • Активировать ячейку или двигаться вниз. - Enter
  • Активируйте и двигайтесь вверх. - Shift + Enter
  • Войдите и двигайтесь вправо. - Tab
  • Войдите и двигайтесь влево. - Shift + Tab
  • Введите одинаковые данные во все выбранные ячейки. - Ctrl + Enter
  • Показать список автозаполнения. - Alt + ↓
  • Заполнить. - Ctrl + D
  • Залить вправо. - Ctrl + R
  • Вставить текущую дату. - Ctrl + Shift + ;
  • Вставить текущее время. - Ctrl + Shift + :
  • Начать новую строку в той же ячейке. - Alt + Enter
  • Отменить ввод ячейки. - ESC

Навигация

  • Переместить на одну ячейку вверх. - ↑
  • Переместите одну ячейку вниз. - ↓
  • Переместите одну ячейку вправо. - →
  • Переместите одну ячейку влево. - ←
  • На один экран вниз. - PageDown
  • На один экран вверх. - PageUp
  • Переместите на один экран вправо. - Alt + PageDown
  • Переместите на один экран влево. - Alt + PageUp
  • Переместитесь к правому краю области данных. - Ctrl + →
  • Перейти к левому краю области данных. - Ctrl + ←
  • Переместитесь к нижнему краю области данных. - Ctrl + ↓
  • Перейти к верхнему краю области данных. - Ctrl + ↑
  • Переместитесь в нижнюю правую активную ячейку на листе. - Ctrl + End
  • Перейти к первой ячейке в текущей книге - Ctrl + Home
  • Перейти в начало ряда. - Home
  • Перейти к следующему листу. - Ctrl + PageDown
  • Перейти к предыдущему листу. - Ctrl + PageUp

Вырезать, копировать, вставить

Удаление

  • Очистить все - Alt + H + E + A
  • Только чистые форматы. - Alt + H + E + F
  • Только очистить содержимое. - Alt + H + E + C
  • Очистить только гиперссылки. - Alt + H + E + L
  • Удалить только комментарии. - Alt + H + E + M

Активация

  • Выберите текущую книгу / Выбрать все. - Ctrl + А
  • Выберите видимые ячейки в текущем регионе. - Alt + ;
  • Выберите текущую область вокруг активной ячейки. - Ctrl + Shift + *
  • Выберите всю строку. - Shift + Space
  • Выберите весь столбец. - Ctrl + Space
  • Выделите все ячейки, содержащие комментарии. - Ctrl + Shift + О
  • Выберите "Различия в строках". - Ctrl + \
  • Выберите "Различия в столбцах". - Ctrl + Shift +|
  • Выберите Прямые прецеденты. - Ctrl + [
  • Выбрать все прецеденты. - Ctrl + Shift +
  • Выберите Прямые иждивенцы. - Ctrl + ]
  • Выберите всех иждивенцев. - Ctrl + Shift + >
  • Отобразить диалоговое окно "Перейти к". - Ctrl + G

Выделение

  • Выделение вправо на одну ячейку. - Shift + →
  • Выделение влево на одну ячейку. - Shift + ←
  • Выделить вверх на одну ячейку. - Shift + ↑
  • Выделить на одну ячейку вниз. - Shift +↓
  • Расширьте выделение вправо до последней ячейки. - Ctrl + Shift + →
  • Расширьте выделение влево до последней ячейки. - Ctrl + Shift + ←
  • Расширить выделение вверх до последней ячейки. - Ctrl + Shift + ↑
  • Расширить выделение вверх на один экран. - Shift + PageUp
  • Расширить выделение на один экран вниз. - Shift + PageDown
  • Расширить выделение вправо на один экран. - ALT + Shift + PageUp
  • Расширить выделение влево на один экран. - ALT + Shift + PageDown
  • Расширить выделение до начала строки. - Shift + Home
  • Расширить выделение до первой ячейки на листе. - Ctrl + Shift + Home
  • Расширить выделение до последней ячейки на листе. - Ctrl + Shift + End
  • Переключить режим расширения выделения. - F8

Выравнивание

  • Выровняйте содержимое по центру ячейки. - Alt + H + A + C
  • Выровняйте содержимое по левому краю ячейки. - Alt + H + A + L
  • Выровняйте содержимое по правому краю ячейки. - Alt + H + A + R
  • Выровняйте содержимое по середине ячейки. - Alt + H + A + M

Скрыть / Показать (строки, столбцы, объекты)

  • Скрыть выбранные строки. - Ctrl + 9
  • Скрыть выбранные столбцы. - Ctrl + 0
  • Показать скрытые строки в выделении. - Ctrl + Shift + 9
  • Показать скрытые столбцы в выделении. - Ctrl + Shift + 0
  • Показать / скрыть объекты. - Ctrl + 6

Вставка

  • Вставить новую строку в той же ячейке - Alt + Enter
  • Вставить новый лист. - Shift + F11
  • Вставить строку / ячейку (показывает диалоговое окно). - Ctrl + Shift + =
  • Вставить текущую дату. - Ctrl + Shift + ;
  • Вставить текущее время. - Ctrl + Shift + :
  • Вставить таблицу. - Ctrl + Т
  • Вставить гиперссылку. - Ctrl + K
  • Вставьте имена аргументов в формулу. - Ctrl + Shift +A
  • Вставить / изменить комментарий к ячейке. - Shift+ F2
  • Удалить строку / ячейку (показывает диалоговое окно). - Ctrl + -

Форматирование

Связанные с формулами

  • Вставить формулу автосуммы. - Alt + =
  • При вводе формулы переключает ссылку на ячейку с абсолютной на относительную. - F4
  • Развернуть / свернуть панель формул. - Ctrl + Shift + U
  • Откройте диалоговое окно «Вставить функцию». - Shift + F3
  • Введите формулу как формулу массива. - Ctrl + Shift + Enter
  • Оцените часть формулы. - F9
  • Выберите массив, содержащий активную ячейку. - CTRL + /
  • Выберите все ячейки, на которые прямо или косвенно ссылаются формулы в выделенном фрагменте. - CTRL+ [
  • Выберите ячейки, содержащие формулы, которые прямо или косвенно ссылаются на активную ячейку. - CTRL + ]
  • Переключить отображение значения / формулы. - Ctrl + `
  • Повторно проверяет зависимые формулы, а затем вычисляет все ячейки во всех открытых книгах. - Ctrl+ Alt + Shift + F9

Поиск и замена

  • Отображение диалогового окна «Найти и заменить» («Найти выбранное»). - Ctrl + F
  • Отображение диалогового окна «Найти и заменить» («Заменить выбранное»). - Ctrl + H
  • Найти следующее совпадение. - Shift + F4
  • Найдите предыдущее совпадение. - Ctrl + Shift + F4

Условное форматирование

  • Откройте диалоговое окно условного форматирования. - Alt + O + D
  • Очистить условное обозначение из выбранных ячеек. - Alt + H + L + C + S
  • Очистить условное обозначение на всем листе. - Alt + H + L + C + E

Диаграммы

  • Вставляет диаграмму в рабочий лист (используя выбранные данные). - Alt + F1

Имена, диапазоны

  • Получите список всех определенных именованных диапазонов. - F3
  • Создать именованный диапазон из выделенного. - Ctrl + Shift + F3
  • Диалоговое окно определения имени. - Ctrl + F3

Сводная таблица

  • Отобразить диалоговое окно «Вставить сводную таблицу». - Alt + N + V
  • Откройте мастер сводной таблицы. - Alt + D + P
  • Выберите всю сводную таблицу (за исключением фильтров отчета). - Ctrl + A
  • Добавить / удалить галочку для выбранного поля в списке полей сводной таблицы. - Space
  • Сгруппируйте выбранные элементы сводной таблицы. - Alt + Shift + →
  • Разгруппируйте элементы сводной таблицы. - Alt + Shift + ←
  • Выберите следующий элемент в списке полей сводной таблицы или списке элементов. - ↓
  • Выберите предыдущий элемент в списке полей сводной таблицы или списке элементов. ↑
  • Выберите последний видимый элемент в списке. - End
  • Выберите первый видимый элемент в списке. - Home
  • Откройте список полей для активной ячейки. - Alt + ↓
  • Скрыть выбранный элемент или поле. - Ctrl + -
  • Открывает диалоговое окно «Расчетное поле» (когда выбрано поле данных). - Shift + Ctrl + =

Прочее

  • Восстановить размер окна. - Ctrl + F5
  • Переместить окно. - Ctrl + F7
  • Изменить размер окна. - Ctrl + F8
  • Предыдущее окно. - Ctrl + Shift + F6
  • Следующая панель. - F6
  • Предыдущая панель. - F8
  • Расширенный режим. - Shift + F10
  • Показать контекстное меню. - Shift + F6
  • Включает режим добавления к выделенному. - Shift + F8

Макросы

  • Переключайтесь между Excel Worksheet и редактором VBA. - Alt + F11
  • VB Help. - F1
  • Просмотр обозревателя объектов. - F2
  • Просмотр свойств. - F4
  • Просмотр окна кода. - F7
  • Просмотр немедленного окна. - Ctrl + G
  • Просмотр контекстного меню. - Shift + F10
  • Запустите Sub / UserForm. - F5
  • Шаг - F8
  • Переступить. - Shift + F8
  • Выйти. - Ctrl + Shift + F8
  • Перейти к курсору. - Ctrl + F8
  • Переключить точку останова. - F9
  • Очистить все точки останова. - Ctrl + F9
  • Закройте редактор VBA и вернитесь к таблице Excel. - Alt + Q

Отлично! Раз вы дочитали или просто долистали статью до конца, значит вам это нужно. Поэтому чтобы каждый раз не возвращаться к списку, просто скачайте его и распечатайте. СКАЧАТЬ . Так вы всегда будет видеть его перед глазами и запоминать сочетания если будете ими пользоваться.

  1. Трюки и хитрости в Excel - Как вывести на печать верхнюю строку на каждой странице ?
  2. Как преобразовать краткий формат даты в название месяца?
  3. Как создать "шаговую" диаграмму в Excel (подробная инструкция).

На этом у меня всё. 🏁 Если вам понравился сегодняшний урок, ставьте лайки 👍 и подписывайтесь на канал. Если хотите посмотреть еще уроки загляните в СОДЕРЖАНИЕ , обязательно еще что-нибудь присмотрите )) Спасибо!

Упрости себе работу, вводи данные в таблицу Excel с помощью формы

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

Форма ввода данных в Excel

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

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

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

Читайте также: