Create a pop-up message box in Excel using VBA Macros. This allows you to show a message to the user and to get input back, depending on which buttons were clicked in the pop-up message.
To output a message in Excel, we use the MsgBox function. Below, you will find many examples that should suit your needs.
Sections:
Syntax
Example 1 — Output Basic Text
Example 2 — Add Buttons to the Message Box
Example 3 — Figure Out Which Button Was Clicked
Example 4 — Do Something After the User Clicks a Button
Example 5 — Change MsgBox Appearance
Notes
Syntax
MsgBox(prompt, [buttons], [title], [helpfile], [context])
Argument | Description |
---|---|
Prompt |
The text that will be in the message box. This is the only required argument for the MsgBox function. |
[Buttons] |
Allows you to display different buttons and icons in the message box. |
[Title] |
Text that appears in the title bar of the message box. |
[Helpfile] |
Not needed. Allows for a specific help file to be used. |
[Context] |
Not needed. Required if the helpfile argument is used. |
[] means it is an optional argument.
Button Arguments
These are the values that can be entered for the buttons argument. You will use the VB Codes to add them to the message box. Examples below will include some of these options so you can better understand them.
VB Code | Description | Value |
---|---|---|
vbOKOnly |
OK Button. Default. |
0 |
vbOKCancel |
OK and Cancel buttons. |
1 |
vbAbortRetryIgnore |
Abort, Retry, and Ignore buttons. |
2 |
vbYesNoCancel |
Yes, No, and Cancel buttons. |
3 |
vbYesNo |
Yes and No buttons. |
4 |
vbRetryCancel |
Retry and Cancel buttons. |
5 |
vbCritical |
Displays the Critical Message icon in the message box window. |
16 |
vbQuestion |
Displays the Warning Query icon in the message box window. |
32 |
vbExclamation |
Displays the Warning Message icon in the message box window. |
48 |
vbInformation |
Displays the Information Message icon in the message box window. |
64 |
vbDefaultButton1 |
Selects the first button in the message box by default. |
0 |
vbDefaultButton2 |
Selects the second button in the message box by default. |
256 |
vbDefaultButton3 |
Selects the third button in the message box by default. |
512 |
vbDefaultButton4 |
Selects the fourth button in the message box by default. |
768 |
vbApplicationModal |
Application modal; the user must respond to the message box before continuing work in Excel. |
0 |
vbSystemModal |
System modal; all applications are suspended until the user responds to the message box. |
4096 |
VbMsgBoxSetForeground |
Specifies the message box window as the foreground window |
65536 |
vbMsgBoxRight |
Text is right aligned |
524288 |
Values Returned from Button Clicks in the Message Box
When a user clicks one of the buttons that are in the message box, a value will be returned to VBA; that value corresponds to the button that was clicked and is listed below.
Button Clicked | Returned Constant | Returned # Value |
---|---|---|
OK |
vbOK |
1 |
Cancel |
vbCancel |
2 |
Abort |
vbAbort |
3 |
Retry |
vbRetry |
4 |
Ignore |
vbIgnore |
5 |
Yes |
vbYes |
6 |
No |
vbNo |
7 |
Example 1 — Output Basic Text
Basic message box with text.
This is the simplest form of outputting a message.
MsgBox "Hi, this is my message."
Running the macro we get this:
Remember, the OK button is there by default and clicking that simply closes the pop-up message box window.
Example 2 — Add Buttons to the Message Box
Message box with multiple buttons.
MsgBox "Hi, this is my message.", vbYesNoCancel
I added a comma after the display text and then input one of the VB codes from the Button Arguments list above.
Run the macro and we get this in Excel:
Example 3 — Figure Out Which Button Was Clicked
When a button is clicked, it sends a value back to Excel. Now, we need to capture that value so we can do something with it.
response = MsgBox("Hi, this is my message.", vbYesNoCancel)
All we have to do is to set a variable equal to the output of the MsgBox function. Here, the variable response is equal to the output of the function, which means that we type response = and then the msgbox function.
Note also that there are now parentheses surrounding the arguments for the MsgBox function; these weren’t included before because they weren’t needed. Often, they aren’t used when creating simple pop-up windows.
I will now output the variable response into a Msgbox of its own so you can see the value it returns after a button was clicked.
Here is the final code for this example:
Run it and you get this:
Click one of the buttons and the next message box will open with the value that was returned as a result of the button click in the first window.
A 6 is returned, which means the button Yes was clicked. We know this from the table above «Values Returned from Button Clicks in the Message Box», which lists the values that each button click will return.
Example 4 — Do Something After the User Clicks a Button
Now that you know how to determine which button was clicked, let’s do something useful with it.
I will make a simple IF statement that checks which button was clicked and outputs a message based on that.
Sub button_action_msgbox()
response = MsgBox("Hi, this is my message.", vbYesNo)
If response = 6 Then
MsgBox "You clicked Yes"
ElseIf response = 7 Then
MsgBox "You clicked No"
End If
End Sub
Run the macro:
Hit one of the buttons and the next part of the macro will run and the corresponding msgbox will appear:
At this point, we have created a useful pop-up message box that solicits feedback and does something with that feedback.
Example 5 — Change MsgBox Appearance
You can add some additional things to the pop-up window to change its look and feel and here I will include some of those options, including a custom title for the window.
Sub button_style_msgbox()
MsgBox _
"Hi, this is my message.", _
vbOKOnly + vbInformation, _
"Custom Title"
End Sub
First, notice that I used «_» at the end of each line so that I could place this piece of code on multiple lines.
Second, notice that there is now a custom title called Custom Title that will appear for the msgbox.
Third, notice that there is more than one option for the buttons argument and that each argument is separated with a plus sign (+) like this: vbOKOnly + vbInformation.
Run the macro and we get this:
The option vbOKOnly meant there would be only an OK button. The option vbInformation put that image with the i inside the blue circle in there. The custom title appears in the upper-left corner of the pop-up message box window.
Notes
These are a few examples that should get you comfortable using the Message Box pop-up window feature in macros in Excel.
This is a great way to give some information to your user that they must process or at least must reply to in some way before continuing.
Make sure to download the sample file attached to this tutorial to get all of the sample VBA Macro codes.
На чтение 10 мин. Просмотров 38.6k.
В Excel VBA вы можете использовать функцию MsgBox для отображения окна сообщения (как показано ниже):
MsgBox — это не что иное, как диалоговое окно, которое вы можете использовать для информирования своих пользователей, показывая пользовательское сообщение или получая некоторые основные входные данные (такие как Да / Нет или OK / Отмена).
Пока отображается диалоговое окно MsgBox, ваш код VBA останавливается. Вам нужно нажать любую из кнопок в MsgBox, чтобы запустить оставшийся код VBA.
Примечание: в этом уроке я буду использовать слова «окно сообщения» и MsgBox взаимозаменяемо. При работе с Excel VBA вам всегда нужно использовать MsgBox.
Содержание
- Анатомия VBA MsgBox в Excel
- Синтаксис функции VBA MsgBox
- Константы кнопки Excel VBA MsgBox (примеры)
- Константы значков Excel VBA MsgBox (примеры)
- Настройка заголовка и приглашения в MsgBox
- Присвоение значения MsgBox переменной
Анатомия VBA MsgBox в Excel
Окно сообщения состоит из следующих частей:
- Title — заголовок: обычно используется для отображения содержания окна сообщения. Если вы ничего не указали, отображается имя приложения, в данном случае Microsoft Excel.
- Prompt — подсказка: это сообщение, которое вы хотите отобразить. Вы можете использовать это пространство, чтобы написать пару строк или даже отобразить таблицы / данные здесь.
- Button(s) — кнопка(-и): хотя кнопка «ОК» является кнопкой по умолчанию, ее можно настроить таким образом, чтобы отображать такие кнопки, как «Да / Нет»; «Да / Нет / Отмена», «Повторить» / «Пропустить» и т.д.
- Close Icon — значок закрытия: Вы можете закрыть окно сообщения, нажав на значок закрытия.
Синтаксис функции VBA MsgBox
Как я уже упоминал, MsgBox является функцией и имеет синтаксис, аналогичный другим функциям VBA.
MsgBox( prompt [, buttons ] [, title ] [, helpfile, context ] )
- prompt — это обязательный аргумент. Он отображает сообщение, которое вы видите в MsgBox. В нашем примере текст «Это образец MsgBox» — это «подсказка». В приглашении можно использовать до 1024 символов, а также использовать его для отображения значений переменных. Если вы хотите показать подсказку, состоящую из нескольких строк, вы можете сделать это также (подробнее об этом позже в этом руководстве).
- [buttons ] — определяет, какие кнопки и значки отображаются в MsgBox. Например, если я использую vbOkOnly, на нем будет отображаться только кнопка OK, а если я использую vbOKCancel, на нем будут отображаться кнопки OK и Отмена. Я расскажу о различных видах кнопок позже в этом уроке.
- [title] — здесь вы можете указать заголовок в диалоговом окне сообщения. Отображается в строке заголовка MsgBox. Если вы ничего не укажете, будет показано название приложения.
- [helpfile] — вы можете указать файл справки, к которому можно получить доступ, когда пользователь нажимает кнопку «Справка». Кнопка справки появится только тогда, когда вы используете для нее код кнопки. Если вы используете файл справки, вам также необходимо указать аргумент context.
- [context] — это числовое выражение, которое является номером контекста справки, назначенным соответствующему разделу справки.
Если вы новичок в концепции Msgbox, не стесняйтесь игнорировать аргументы [helpfile] и [context]. Они редко используются.
Примечание. Все аргументы в квадратных скобках являются необязательными. Только аргумент «подсказка» является обязательным.
Константы кнопки Excel VBA MsgBox (примеры)
В этом разделе я расскажу о различных типах кнопок, которые вы можете использовать с VBA MsgBox.
Прежде чем я покажу вам код VBA для него и то, как выглядит MsgBox, вот таблица, в которой перечислены все различные константы кнопок, которые вы можете использовать.
Константа кнопки | Описание |
vbOKOnly | Показывает только кнопку ОК |
vbOKCancel | Показывает кнопки ОК и Отмена |
vbAbortRetryIgnore | Показывает кнопки «Прервать», «Повторить» и «Игнорировать» |
vbYesNo | Показывает кнопки Да и Нет |
vbYesNoCancel | Показывает кнопки Да, Нет и Отмена |
vbRetryCancel | Показывает кнопки «Повторить» и «Отменить» |
vbMsgBoxHelpButton | Показывает кнопку справки. Чтобы это работало, вам нужно использовать аргументы справки и контекста в функции MsgBox |
vbDefaultButton1 | Делает первую кнопку по умолчанию. Вы можете изменить номер, чтобы изменить кнопку по умолчанию. Например, vbDefaultButton2 делает вторую кнопку по умолчанию |
Примечание. Просматривая примеры создания различных кнопок, вы можете задаться вопросом, какой смысл использовать эти кнопки, если они не влияют на код.
Влияют! В зависимости от выбора вы можете кодировать то, что вы хотите, чтобы код делал. Например, если вы выберете «ОК», код должен продолжиться, а если вы нажмете «Отмена», код должен прекратиться. Это можно сделать с помощью переменных и присвоения значения окна сообщения переменной. Мы рассмотрим это в последующих разделах этого урока.
Теперь давайте рассмотрим несколько примеров того, как различные кнопки могут отображаться в MsgBox и как они выглядят.
Кнопки MsgBox — vbOKOnly (по умолчанию)
Если вы используете только приглашение и не указываете ни один из аргументов, вы получите окно сообщения по умолчанию, как показано ниже:
Ниже приведен код, который выдаст это окно сообщения:
Sub DefaultMsgBox() MsgBox "This is a sample box" End Sub
Обратите внимание, что текстовая строка должна быть в двойных кавычках.
Вы также можете использовать постоянную кнопку vbOKOnly, но даже если вы ничего не указали, она используется по умолчанию.
Кнопки MsgBox — ОК и Отмена
Если вы хотите показать только ОК и кнопку Отмена, вам нужно использовать константу vbOKCancel
Sub MsgBoxOKCancel() MsgBox "Want to Continue?", vbOKCancel End Sub
Кнопки MsgBox — Отмена, Повтор и Игнорирование
Вы можете использовать константу vbAbortRetryIgnore для отображения кнопок «Отмена», «Повторить» и «Игнорировать».
Sub MsgBoxAbortRetryIgnore() MsgBox "What do you want to do?", vbAbortRetryIgnore End Sub
Кнопки MsgBox — Да и Нет
Вы можете использовать константу vbYesNo для отображения кнопок Да и Нет.
Sub MsgBoxYesNo() MsgBox "Should we stop?", vbYesNo End Sub
Кнопки MsgBox — Да, Нет и Отмена
Вы можете использовать константу vbYesNoCancel для отображения кнопок «Да», «Нет» и «Отмена».
Sub MsgBoxYesNoCancel() MsgBox "Should we stop?", vbYesNoCancel End Sub
Кнопки MsgBox — повторить попытку и отменить
Вы можете использовать константу vbRetryCancel для отображения кнопок «Повторить» и «Отмена».
Sub MsgBoxRetryCancel() MsgBox "What do you want to do next?", vbRetryCancel End Sub
Кнопки MsgBox — Кнопка справки
Вы можете использовать константу vbMsgBoxHelpButton для отображения кнопки справки. Вы можете использовать его с другими константами кнопок.
Sub MsgBoxRetryHelp() MsgBox "What do you want to do next?", vbRetryCancel + vbMsgBoxHelpButton End Sub
Обратите внимание, что в этом коде мы объединили две разные константы кнопки (vbRetryCancel + vbMsgBoxHelpButton). Первая часть показывает кнопки «Повторить» и «Отмена», а вторая часть показывает кнопку «Справка».
MsgBox Buttons — Настройка кнопки по умолчанию
Вы можете использовать константу vbDefaultButton1 для установки первой кнопки по умолчанию. Это означает, что кнопка уже выбрана, и если вы нажмете Enter, она выполнит эту кнопку.
Ниже приведен код, который установит в качестве кнопки по умолчанию вторую кнопку (кнопка «Нет»).
Sub MsgBoxOKCancel() MsgBox "What do you want to do next?", vbYesNoCancel + vbDefaultButton2 End Sub
В большинстве случаев крайняя левая кнопка является кнопкой по умолчанию. Вы можете выбрать другие кнопки, используя vbDefaultButton2, vbDefaultButton3 и vbDefaultButton4.
Константы значков Excel VBA MsgBox (примеры)
Помимо кнопок, вы также можете настроить значки, отображаемые в диалоговом окне MsgBox. Например, у вас может быть красный критический значок или синий информационный значок.
Ниже приведена таблица со списком кода, который будет отображать соответствующий значок.
Константа значка | Описание |
vbCritical | Показывает значок критического сообщения |
vbQuestion | Показывает значок вопроса |
vbExclamation | Показывает значок предупреждения |
vbInformation | Показывает значок информации |
Иконки MsgBox — Критические
Если вы хотите показать критический значок в своем MsgBox, используйте константу vbCritical. Вы можете использовать ее вместе с другими константами кнопки (поставив знак + между кодами).
Например, ниже приведен код, который будет показывать кнопку ОК по умолчанию с критическим значком.
Sub MsgBoxCriticalIcon() MsgBox "This is a sample box", vbCritical End Sub
Если вы хотите показать критический значок с кнопками Да и Нет, используйте следующий код:
Sub MsgBoxCriticalIcon() MsgBox "This is a sample box", vbYesNo + vbCritical End Sub
Иконки MsgBox — Вопрос
Если вы хотите показать иконку вопроса в своем MsgBox, используйте константу vbQuestion.
Sub MsgBoxQuestionIcon() MsgBox "This is a sample box", vbYesNo + vbQuestion End Sub
Иконки MsgBox — Восклицательный знак
Если вы хотите показать восклицательный значок в вашем MsgBox, используйте константу vbExclamation.
Sub MsgBoxExclamationIcon() MsgBox "This is a sample box", vbYesNo + vbExclamation End Sub
Иконки MsgBox — Информация
Если вы хотите отобразить информационный значок в вашем MsgBox, используйте константу vbInformation.
Sub MsgBoxInformationIcon() MsgBox "This is a sample box", vbYesNo + vbInformation End Sub
Настройка заголовка и приглашения в MsgBox
При использовании MsgBox вы можете настроить заголовок и сообщения подсказок.
До сих пор в примерах, которые мы видели, использовался Microsoft Excel в качестве заголовка. Если вы не указали аргумент title, MsgBox автоматически использует заголовок приложения (в данном случае это был Microsoft Excel).
Вы можете настроить заголовок, указав его в коде, как показано ниже:
Sub MsgBoxInformationIcon() MsgBox "Do you want to continue?", vbYesNo + vbQuestion, "Step 1 of 3" End Sub
Точно так же вы также можете настроить сообщение подсказки.
Вы также можете добавить разрывы строк в сообщении подсказки.
В приведенном ниже коде я добавил разрыв строки, используя «vbNewLine».
Sub MsgBoxInformationIcon() MsgBox "Do you want to continue?" & vbNewLine & "Click Yes to Continue", vbYesNo + vbQuestion, "Step 1 of 3" End Sub
Вы также можете использовать символ возврата каретки — Chr (13) или перевод строки — Chr (10), чтобы вставить новую строку в сообщение с подсказкой.
Обратите внимание, что вы можете добавить новую строку только к сообщению, а не к заголовку.
Присвоение значения MsgBox переменной
До сих пор мы видели примеры, где мы создавали окна сообщений и настраивали кнопки, значки, заголовок и приглашение.
Однако нажатие кнопки ничего не сделало.
С помощью функции MsgBox в Excel вы можете решить, что вы хотите делать, когда пользователь нажимает определенную кнопку. И это возможно, поскольку каждая кнопка имеет значение, связанное с ней.
Поэтому, если я нажимаю кнопку «Да», функция MsgBox возвращает значение (6 или константа vbYes), которое я могу использовать в своем коде. Аналогично, если пользователь выбирает кнопку «Нет», он возвращает другое значение ((7 или константа vbNo)), которое я могу использовать в коде.
Ниже приведена таблица, которая показывает точные значения и константу, возвращаемую функцией MsgBox. Вам не нужно запоминать их, просто помните об этом, и вы можете использовать константы, которые проще в использовании.
При нажатии кнопки | Константа | Значение |
Ok | vbOk | 1 |
Cancel | vbCancel | 2 |
Abort | vbAbort | 3 |
Retry | vbRetry | 4 |
Ignore | vbIgnore | 5 |
Yes | vbYes | 6 |
No | vbNo | 7 |
Теперь давайте посмотрим, как мы можем контролировать макрос-код VBA в зависимости от того, на какую кнопку нажимает пользователь.
В приведенном ниже коде, если пользователь нажимает кнопку «Да», отображается сообщение «Вы нажали кнопку «Да», а если пользователь нажимает кнопку «Нет», отображается сообщение «Вы нажали кнопку «Нет»».
Sub MsgBoxInformationIcon() Result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion) If Result = vbYes Then MsgBox "You clicked Yes" Else: MsgBox "You clicked No" End If End Sub
В приведенном выше коде я присвоил значение функции MsgBox переменной Result. Когда вы нажимаете кнопку «Да», переменная Result получает константу vbYes (или число 6), а когда вы нажимаете «Нет», переменная Result получает константу vbNo (или число 7).
Затем я использовал конструкцию If Then Else, чтобы проверить, содержит ли переменная Result значение vbYes. Если это так, отображается запрос «Вы нажали Да», в противном случае — «Вы нажали Нет».
Вы можете использовать ту же концепцию для запуска кода, если пользователь нажимает Да, и выход из подпрограммы, когда он нажимает Нет.
Примечание. Когда вы присваиваете выход MsgBox переменной, вы должны поместить аргументы функции MsgBox в круглые скобки. Например, в строке Result = MsgBox («Хотите продолжить?», VbYesNo + vbQuestion) вы можете видеть, что аргументы находятся в скобках.
Если вы хотите в дальнейшем углубиться в функцию Message Box, вот официальный документ по ней.
Как вывести на экран сообщение
Время создания: 13.12.2011 16:57
Текстовые метки: excel, макросы, сообщение, message, экран, окно
Раздел: Компьютер — Windows — Excel
Запись: xintrea/mytetra_syncro/master/base/1323781074z022ceka9z/text.html на raw.github.com
|
Для вывода на экран сообщения можно воспользоваться командой:
MsgBox «Hello Excel»
В результате будет показано окно с данным сообщением и кнопкой ОК.
Изучим простой способ добавления всплывающей подсказки в Excel при вводе данных в ячейку.
Одним из элементов упрощения ввода данных пользователем является добавление всплывающей подсказки, которая появляется при активации конкретной ячейки.
Это позволяет минимизировать возможность ошибки при вводе, а также напоминает какие конкретно данные необходимо ввести в ячейку.
Как сделать всплывающую подсказку?
Чтобы сделать всплывающую подсказку для ячейки выберем на панели вкладок Данные -> Работа с данными -> Проверка данных и в открывшемся окне перейдем в центральную вкладку:
Далее вводим информацию в поля Заголовок и Сообщение, при этом текст введенный в заголовок при отображении подсказки будет показываться жирным шрифтом, а также устанавливаем галочку напротив поля Отображать подсказку, если ячейка является текущей. Нажимаем OK и получаем следующий результат:
Удачи вам и до скорой встречи на страницах блога Tutorexcel.ru!
Во время работы с большими объемами информации, особенно когда ее обработка осуществляется формулами или макросами, важно, чтобы данные не имели ошибок, которые способны повлиять на итог. Сложности в получении корректных исходников появляются, когда они поступают из неструктурированных источников (плохо спроектированные базы данных, ручное заполнение таблиц и форм незаинтересованными в результате людьми). Особенно трудно добиться правильного оформления по определенной маске (шаблону). Например, дату в виде строки можно записать несколькими способами:
- 01.01.2001;
- 01/01/2001;
- 1 января 2001 года и т.д.
В статье описывается функционал, позволяющий упростить процесс сбора и проверки данных в Excel.
Где находится?
Для настройки параметров проверки вводимых значений необходимо на вкладке «Данные» в области «Работа с данными» кликнуть по иконке «Проверка данных» либо выбрать аналогичный пункт из раскрывающегося меню:
На экране появиться окно с настройками по умолчанию, где в качестве типа данных может быть использовано любое значение:
Настройка условия проверки
Изначально требуется выбрать тип проверяемых данных, что будет являться первым условием. Всего предоставлено 8 вариантов:
- Целое число;
- Действительное число;
- Список;
- Дата;
- Время;
- Длина текста;
- Другой.
В соответствии с выбранным пунктом, появляется возможность выбора дополнительных условий. Для чисел, дат, времени и длины текста возможно указать ограничения: меньше, больше, диапазон и т.п. К списку обязательно привязывается источник, а пункт «другой» предлагает ввести формулу, возвращающую логическое значение.
Самым необычным видом является выпадающий список.
Он позволяет выбирать значения, указанные в качестве источника и ограничивать допустимые значения им же. Также возможно создавать динамические выпадающие списки.
Всплывающая подсказка ячейки Excel
Функционал проверки данных в Excel позволяет настраивать всплывающие подсказки для ячеек листа. Для этого следует перейти на вторую вкладку окна проверки вводимых значений – «Сообщение для ввода».
На изображении показан пример возможного сообщения для ячейки, в которую вносятся целые числа от 1 до 31 (настройки вкладки «Параметры»). Заголовок и сообщения указываются по Вашему усмотрению, каких-либо правил к их оформлению нет. Не забудьте установить галочку на поле «Отображать подсказку, если ячейка является текущей», иначе сообщение будет деактивировано.
Пример всплывающей подсказки в Excel:
Вывод сообщения об ошибке
Последняя вкладка окна проверки данных позволяет настроить поведение и вывод сообщений при обнаружении ошибочного значения.
Существует три варианта сообщений, отличающихся по поведению:
- Останов;
- Предупреждение;
- Сообщение.
Останов является сообщением об ошибке и позволяет произвести только 2 действия: отменить ввод и повторить ввод. В случае отмены новое значение будет изменено на предыдущее. Повтор ввода дает возможность скорректировать новое значение.
Предупреждение более лояльно в сравнении с остановом, так как позволяет оставлять значение, не соответствующее условиям проверки, после подтверждения ввода пользователем.
Сообщение выводить ошибку в виде простой информации и дает возможность отменить последнее действие.
Заголовок и сообщение заполняются по Вашему желанию.
Пример вывода одной и той же ошибки, но под разными видами:
Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.
У Вас недостаточно прав для комментирования.
В MS Excel есть ряд очень полезных инструментов для удивительно простого создания по-настоящему сложных форм сбора информации. Однако, вот незадача — чаще всего камнем преткновения во взаимодействии с ними служат не возможности табличного редактора, а человеческая «косорукость». Пользователи стирают формулы из ячеек, вносят некорыстные данные, в общем, портят плоды наших трудов.
К счастью они делают это не со зла, и все что нужно нам — разработчикам, снабдить их подсказками и уже готовыми заранее ответами. Как это сделать, я расскажу в этой статье.
Вот и моя демонстрационная excel-таблица. Как её заполнять?
Подсказки в MS Excel
Первый способ вставки подсказки
Первым делом разберемся c подсказками. Взгляните на мою табличку. Вроде бы все просто, однако даже при такой простоте можно нагородить солидный огород. К примеру, поле «номер документ» — это №1, 1, или 22.03-1?
Самый проcтой способ вставить примечание в лист MS Excel
Самое простое, это щелкнуть по нужной ячейке правой кнопкой мыши и выбрать пункт «Вставить примечание«. В появившемся поле достаточно написать требуемый текст, и если пользователь поднесет курсор мыши к этой ячейке, текст немедленно появится во всплывающей подсказке.
Обратите внимание: ячейка с примечанием помечена особым значком — маленьким красным треугольником в правом верхнем углу. Сам же текст примечания может быть отформатирован как любой другой — вы можете сделать его жирным или курсивным, чтобы подчеркнуть особо важные моменты своего послания.
Удалить примечания можно только из контекстного меню правой кнопки мыши
Обратите внимание: нажатие кнопки «Delete» в ячейке не удалит примечание. Избавиться от него (или изменить его текст) можно повторно щелкнув в ячейке правой кнопкой мыши и выбрав пункт «Удалить примечание» или «Изменить примечание».
Второй способ вставки подсказки
Ещё один способ ввести подсказку интересен нам только с точки зрения того, о чем пойдет разговор дальше (фильтрации ввода), тем не менее знать о нем полезно.
Примечания в Excel с помощью проверки данных
Поставьте курсор мыши в выбранную ячейку, на панели «Данные» в группе «Работа с данным» откройте инструмент «Проверка данных«, и заполните поля «заголовок» и «текст сообщения» на вкладке «Сообщение для ввода«. Нажмите «Ок».
Теперь, при щелчке на ячейке с подсказкой (обратите внимание — отмеченная таким способом ячейка не помечается красным треугольником, и выглядит так же как любая другая) также будет выведен его текст в желтом прямоугольнике. Удалить и изменить примечание введенное через «Проверку данных» с помощью правой кнопки мыши, нельзя.
Проверка по числу введенных символов
Подсказки — это хорошо, но что делать с самыми «прогрессивными» пользователями, которые подсказок не читают? Остается одно — бить по рукам… то есть использовать фильтрацию ввода, я хотел сказать.
Снова открываем инструмент «Проверка данных«, переходим на вкладку «Параметры» и смотрим на наши возможности по ограничению возможностей пользователя.
Проверка по числу введенных символов в MS Excel
Первое, что может оказаться полезным, это проверка по длине введенного текста. Выбираем пункт «Длина текста» и указываем любой диапазон ограничений. К примеру, я хочу чтобы текст в поле «Сообщение» был как можно более кратким, но в то же время ячейка не могла оставаться пустой. Значения от 3-х до 25 введенных символов, этого вполне хватит, чтоб вписать что-то вроде «Напоминание об оплате» (21 символ), а при попытке ввести более длинный текст, MS Excel выдаст окно-предупреждение и не даст завершить ввод.
Слишком длинный текст! Excel стоит на страже и не пропустит такой очевидной ошибки
Проверка по числу
Ещё один хороший способ фильтрации который пригодится без сомнения: фильтрация по числу. Установите фильтр подобный указанному на рисунке и навсегда избавьтесь от проблем с тем, что в поле цена появляются буквы, пробелы и лишние символы.
Проверка по числу в Excel
Фильтрация на ввод чисел работает ничуть не хуже
Выбор из имеющегося списка значений
Самая мощная и интересная проверка ввода в MS Excel — выборка из выпадающего списка. Она подойдет не для всех типов ячеек, но там где нужна точность, а диапазон значений не слишком велик, выборка по списку это то что надо.
А теперь, сделаем проверку по выпадающему списку в MS Excel. Данные введем вручную, через точку с запятой.
Выбираем в «Проверке данных» вкладку «Параметры«, и указываем «Тип данных» → «Список». Ввести «предустановленные» значения можно двумя способами:
- Выбрать диапазон данных с помощью кнопки «Диапазон данных».
- Вписать значения выпадающего списка вручную, через точку с запятой.
…или выберем из диапазона
Второй способ более интересен, так как данные «спрятаны» от пользователя, зато набить их больше десятка подряд — проблематично. Первый способ позволяет без проблем задать намного больший список для выбора данных, однако прежде придется этот список разместить где-то в документе (каждое значение на отдельной строке), например на отдельном «служебном» листе в той же книге MS Excel.
Выбор из списка на листе MS Excel. Других данных ввести не удастся.
Вот и готово — теперь заполнить ячейку можно лишь теми значениями, что мы указали в списке. При попытке ввести данные вручную, MS Excel выдаст нам уже знакомую ошибку.
Кстати, можно изменить и её текст — для этого перейдите на вкладку «Сообщение для вывода» в «Проверке данных», как мы уже делали при «втором способе» вставке подсказок, измените текст на требуемый.
Примечания в Excel — удобная штука. Только, чтобы отобразить примечание, нужно навести на его ячейку указатель мыши. А как сделать подсказку, которая будет всегда появляться при выборе ячейки — неважно, мышкой или стрелками?
Такая необходимость может возникнуть, например, при заполнении больших таблиц — чтобы не потеряться на просторах данных, можно включить в подсказку заголовки соответствующей строки и столбца. Или блок ячеек используется в качестве исходных данных для документа — и нужно дать необходимые пояснения для правильного заполнения.
Такую возможность даёт инструмент Excel «Проверка данных«.
Ставим курсор на нужную ячейку. Открываем окно «Проверка вводимых значений«. В Excel 2003 путь к нему такой: в строке меню ->Данные -> Проверка. В Excel 2007 — на ленте вкладка «Данные» -> пункт «Проверка»
Так как задачи действительно проверить вводимые значения у нас нет, сразу переходим на вкладку «Сообщение для ввода«. Заголовком можно пренебречь, заполнить только раздел «Сообщение«. Там напишите всё, что должно отображаться в подсказке. Обязательно проверьте, чтобы стояла галочка «Отображать подсказку, если ячейка является текущей». Написáли? Жмём ОК и радуемся!
Неактивная подсказка внешне не заметна. А при выборе ячейки с подсказкой, рядом появляется симпатичное окошечко с текстом пояснения.
Если подсказки содержат, к примеру, данные из заголовков строк и/или столбцов таблицы и их нужно часто менять, можно написать несложный макрос, который будет это делать за Вас.
Всплывающая подсказка в ячейке
Сегодня хочу поделиться одним маленьким приемом, который поможет сделать удобные и красивые подсказки к ячейкам:
На создание такой подсказки меня навел однажды вопрос на одном из форумов — как можно сделать удобный перевод текста из ячейки, чтобы он показывался при наведении на ячейку мышью? Не выделении — именно наведении. Можно использовать примечания(вкладка Рецензирование -Создать примечание). Но в случае с примечаниями есть несколько не очень удобных моментов: размеры примечания придется подгонять для каждой подсказки отдельно; примечания как правило будут показываться справа от ячейки, а не чуть ниже; при большом количестве примечаний файл может значительно увеличиться в размерах и некоторые возможности будут мешать их корректному отображению(например, если закрепить области, то примечание может и съехать и «срезаться»). Первое, что пришло в голову — а что если сделать как в гиперссылках (Что такое гиперссылка?)? Если точнее — что если именно эти подсказки использовать? Но как же тогда делать гиперссылку? Куда? Все просто — я решил, что можно создать гиперссылку на ячейку, в которой сама гиперссылка. Тогда даже при нажатии на ячейку с гиперссылкой нас никуда не перекинет. Я покажу как это можно сделать вручную и как это можно сделать при помощи кода VBA.
Для начала немного об исходных данных. У нас есть лист с ячейками, в которых надо создать подсказки и есть лист «справочник», в котором указано для каких значений какие должны быть подсказки.
РУЧНОЕ СОЗДАНИЕ ПОДСКАЗКИ
Выделяем ячейку, подсказку для которой хотим создать -правый клик мыши -Гиперссылка (Hyperlink). Откроется окно добавления гиперссылки.
Выбираем местом в документе
Введите адрес ячейки — указываем адрес той ячейки, в которой хотим создать подсказку
Или выберите место в документе — указываем тот лист, на котором наша ячейка, в которой создаем подсказку.
Далее жмем кнопку Подсказка и в появившемся окне вписываем текст всплывающей подсказки -Ок. Так же в основном окне жмем Ок. Подсказка создана.
Ниже небольшой ролик, в котором показано как это все делается пошагово:
В этом способе все хорошо, кроме двух вещей:
- Если подсказок много, то создавать их весьма непростое занятие. Необходимость листа «справочник» при ручном методе так же ставится под сомнение
- При создании гиперссылки формат ячейки автоматом изменяется. А для нашей цели это в большинстве случаев не надо. Это можно обойти, создавая подсказки вторым способом — при помощи кодов VBA.
СОЗДАНИЕ ПОДСКАЗКИ АВТОМАТИЧЕСКИ КОДОМ VBA
Здесь особо рассказывать нечего — лучше сначала скачать файл, приложенный к статье. Там есть лист «справочник», в котором забита пара значений для подсказок и лист, в котором подсказки создаются.
Как это работает. Выделяются ячейки для создания подсказок(в примере это D15:D16 ). И кнопкой запускается код, который в выделенных ячейках создаст всплывающие подсказки. Сам принцип: код просматривает каждую выделенную ячейку и если она не пустая запоминает её значение. Ищет это значение в первом столбце листа «справочник» и если находит — создает гиперссылку и значение из второго столбца листа «справочник»(в строке с найденным значением) вставляет в качестве подсказки к гиперссылке.
Но помимо этого код перед созданием гиперссылки запоминает большую часть форматирования текста в ячейке и после создания гиперссылки возвращает его. Хотя и здесь не без ложки дегтя — код не сможет корректно обработать и вернуть смешанное форматирование (например, разный цвет шрифта в одной ячейке, разный стиль и т.п.). Но подсказки при этом все равно будут созданы.
Что следует знать: код ищет каждое значение ячейки полностью, а не каждое слово отдельно. Это значит, что если в ячейке будет записано «аннуитентный платеж», а не просто «аннуитентный» как в примере — то подсказка для такой ячейки не будет создана.
Если добавить или изменить значения в листе «справочник», то для того, чтобы подсказки обновились необходимо запустить код заново. Внесение изменений в сам код при этом не требуется.
Созданные подсказки останутся в файле даже если удалить сам код. Т.е. если создать подсказки в файле, а затем файл переслать другому человеку — он сможет использовать подсказки без дополнительных действий.
Всплывающая подсказка в ячейке (59,0 KiB, 3 541 скачиваний)
как сделать в excel чтобы если наводишь на ячейку, то появляется какое-нубудь изображение?
1 Правой мышкой жмем по нужной ячейке — Вставить примечание
У вас появится окно примечания со штриховкой по перриметру Подвели курсор на штриховку и топнули мышкой.
Штриховка превратиться в мелкие точки
2. Выбираем панель «Рисование» . Там находим ведро с краской рядом щелкаем треугольничек и указываем на «Способы
заливки» — Рисунок — Выбираем рисунок жмем -ОК
3. возвращаемся к ячейке которую мы выбрали . Топнули правой мышкой — Скрыть примечание
4. ПРИ НАВЕДЕНИИ КУРСОРА НА ЯЧЕЙКУ — ПОЯВИТСЯ НУЖНАЯ КАРТИНКА.
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
В базе данных Access для настольных компьютеров функция MsgBox отображает сообщение в диалоговом окне, ждет нажатия кнопки пользователем и возвращает integer, указывающее, какую кнопку нажал пользователь.
Синтаксис
MsgBox
(
сообщение
[, кнопки ] [, заголовок ] [, файл_справки ] [, контекст ])
Функция MsgBox имеет следующие аргументы:
Аргумент |
Описание |
сообщение |
Обязательный аргумент. Строковое выражение, отображаемое как сообщение в диалоговом окне. Максимальная длина строки аргумента сообщение составляет приблизительно 1024 знаков и зависит от их ширины. Если аргумент сообщение содержит несколько строк, их можно разделить с помощью знака возврата каретки (Chr(13)), знака перевода строки (Chr(10)) или сочетания этих знаков (Chr(13) & Chr(10)) |
кнопки |
Необязательный. числовое выражение, которая является суммой значений, которая указывает число и тип отображаемой кнопки, стиль значка, идентификатор кнопки по умолчанию и модальность окна сообщения. Если этот вопрос опущен, значение по умолчанию для кнопок — 0. |
заголовок |
Необязательный аргумент. Строковое выражение, отображаемое в заголовке диалогового окна. Если аргумент заголовок опущен, в заголовке выводится имя приложения. |
файл_справки |
Необязательный аргумент. Строковое выражение, определяющее файл, в котором содержится контекстная справка для данного диалогового окна. Если задан аргумент файл_справки, необходимо также указать аргумент контекст. |
контекст |
Необязательный аргумент. Числовое выражение, представляющее собой номер контекста, присвоенный автором справки соответствующему разделу. Если задан аргумент контекст, необходимо также указать аргумент файл_справки. |
Параметры
Аргумент кнопкиаргумент имеет следующие параметры:
Константа |
Значение |
Описание |
vbOKOnly |
0 |
Отображается только кнопка ОК. |
vbOKCancel |
1 |
Отображаются кнопки ОК и Отмена. |
vbAbortRetryIgnore |
2 |
Отображаются кнопки Прервать, Повторить и Пропустить. |
vbYesNoCancel |
3 |
Отображаются кнопки Да, Нет и Отмена. |
vbYesNo |
4 |
Отображаются кнопки Да и Нет. |
vbRetryCancel |
5 |
Отображаются кнопки Повторить и Отмена. |
vbCritical |
16 |
Отображается значок важного сообщения. |
vbQuestion |
32 |
Отображается значок запроса с предупреждением . |
vbExclamation |
48 |
Отображается значок предупреждающего сообщения . |
vbInformation |
64 |
Отображается значок информационного сообщения. |
vbDefaultButton1 |
0 |
По умолчанию активна первая кнопка. |
vbDefaultButton2 |
256 |
По умолчанию активна вторая кнопка. |
vbDefaultButton3 |
512 |
По умолчанию активна третья кнопка. |
vbDefaultButton4 |
768 |
По умолчанию активна четвертая кнопка. |
vbApplicationModal |
0 |
Модальность на уровне приложения. Пользователь должен ответить на сообщение, чтобы продолжить работу в текущем приложении. |
vbSystemModal |
4096 |
Модальность на уровне системы. При ожидании ответа пользователя на сообщение приостанавливается работа всех приложений. |
vbMsgBoxHelpButton |
16384 |
В диалоговое окно сообщения добавляется кнопка «Справка». |
VbMsgBoxSetForeground |
65536 |
Окно сообщения выводится на переднем плане. |
vbMsgBoxRight |
524288 |
Текст выравнивается по правому краю. |
vbMsgBoxRtlReading |
1048576 |
Текст сообщения выводится справа налево. Эта возможность предназначена для систем, в которых используется арабский язык или иврит. |
Совет:
В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
Первая группа значений (0–5) описывает количество и тип кнопок, отображаемого в диалоговом окне; Вторая группа (16, 32, 48, 64) описывает стиль значков. Третья группа (0, 256, 512) определяет, какая кнопка является кнопкой по умолчанию; и четвертая группа (0, 4096) определяет модальность окна сообщения. При добавлении чисел для создания конечного значения для аргумента кнопок используйте только одно число из каждой группы.
Примечание: Эти константы заданы Visual Basic для приложений. Таким образом, их можно использовать в любом месте кода, а не фактические значения.
Возвращаемые значения
Константа |
Значение |
Описание |
vbOK |
1 |
ОК |
vbCancel |
2 |
Отмена |
vbAbort |
3 |
Прервать |
vbRetry |
4 |
Повторить |
vbIgnore |
5 |
Пропустить |
vbYes |
6 |
Да |
vbNo |
7 |
Нет |
Примечания
Если указаны аргументы файл_справки и контекст, пользователь может, нажав клавишу F1 (Windows) или HELP (Макинтош), открыть раздел справки, заданный аргументом контекст. Некоторые принимающие приложения, например Microsoft Excel, также автоматически добавляют в диалоговое окно кнопку «Справка».
Если в диалоговом окне отображается кнопка «Отмена», то нажатие клавиши ESC действует так же, как нажатие кнопки «Отмена». Если диалоговое окно содержит кнопку «Справка», для него предоставляется контекстная справка. Однако значение не возвращается до тех пор, пока не будет нажата одна из других кнопок.
Примечание: Чтобы указать больше аргумента, необходимо использовать msgBox в выражение. Чтобы опустить некоторые позиционные аргументы, необходимо включить соответствующий запятый.
Пример
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA).
В этом примере функция MsgBox используется для вывода сообщения о критической ошибке в диалоговом окне с кнопками «Да» и «Нет». Кнопка «Нет» активна по умолчанию. Значение, возвращаемое функцией MsgBox, зависит от нажатой пользователем кнопки. Предполагается, что DEMO.HLP является файлом справки и содержит раздел под номером контекста 1000.
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "MsgBox Demonstration"
Help = "DEMO.HLP"
Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
Else ' User chose No.
MyString = "No" ' Perform some action.
End If