Миф excel диалоговое окно да нет

In this Article

  • VBA MsgBox Function
  • VBA YesNo Message Box
  • VBA Message Box Options
  • Syntax of MsgBox Function
  • Customize Message Box Title and Prompt
    • MessageBox LineBreaks
  • MsgBox Icons
    • MsgBox Icons – Information
    • MsgBox Icons – Critical
    • MsgBox Icons – Question
    • MsgBox Icons – Exclamation
  • MsgBox Variables
    • OK Message Box – vbOKOnly
    • OK Cancel Message Box – vbOKCancel
    • Yes No Message Box – vbYesNo
    • Yes No Cancel Message Box – vbYesNoCancel
    • Abort Retry Ignore Message Box – vbAbortRetryIgnore
    • Retry Cancel Message Box – vbRetryCancel
  • VBA MessageBox Examples
    • Message Box Confirmation Before Running Macro
    • Yes / No Message Box – Exit Sub
  • VBA Message Box in Access VBA

This tutorial will cover how to use the VBA MsgBox Function to display messageboxes to users (including the YesNo Messagebox). You might also be interested in our article on InputBoxes.

VBA MsgBox Function

In VBA, it’s easy to display a simple MsgBox:

MsgBox "This is a Message Box"

vba messagebox

However you can do a lot more than display a simple OK message box. Let’s quickly look at complicated example before we dive into specifics…

VBA YesNo Message Box

Below we will create a message box with:

  • A title “Message Box Title” and prompt “Text”
  • A question mark icon
  • Yes / No options instead of a simple “OK”
  • Default button = ‘No’
Dim answer As Integer

answer = MsgBox("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

vba yesno messagebox

The messagebox will return vbYes or vbNo depending on the user’s choice. You can then then perform different actions based on the choice:

If answer = vbYes Then
  MsgBox "Yes"
Else
  MsgBox "No"
End If

In the next section we will show you all of the options available to you when creating message boxes. Then we will introduce you to the syntax of the MsgBox Function and finally go over other message box examples.

VBA Message Box Options

Take a look at the image below. Here you will see (almost) all of the options available to you when creating message boxes. Take notice of the icons and the different buttons.

vba write messagebox code

This is a screenshot of the “MessageBox Builder” from our Premium VBA Add-in: AutoMacro. The MessageBox Builder allows you to quickly design your desired messagebox and insert the code into your code module. It also contains many other code builders, an extensive VBA code library, and an assortment of coding tools. It’s a must-have for any VBA developer.

Syntax of MsgBox Function

MsgBox( prompt [, buttons ] [, title ] [, helpfile, context ] )

prompt (Required) – This is the primary message box text.

buttons – Choose which buttons to display. If omitted, ‘OKonly’. Here you can also specify what icon to show and the default button.

title – The title at the top of the message box. If omitted, the name of the current application is displayed (ex. Microsoft Excel).

helpfile – Specify help file that can be accessed when user clicks on the ‘Help’ button. If specified, then you must also add context (below)

context – Numeric expression representing the Help context number assigned to the appropriate Help topic.

You can probably ignore the helpfile and context arguments. I’ve never seen them used.

Customize Message Box Title and Prompt

The MsgBox function allows you to customize the title and prompt messages like so:

Msgbox "Prompt",,"Title"

Another example:

Sub MsgBoxPromptTitle()
  MsgBox "Step 1 Complete. Click OK to run step 2.",, "Step 1 of 5"
End Sub

vba messagebox okonly

Important! You must remember to surround your text with quotations.

MessageBox LineBreaks

You can also add line breaks to your message box prompts with ‘vbNewLine’.

Sub MsgBoxPromptTitle_NewLine()
  MsgBox "Step 1 Complete." & vbNewLine & "Click OK to Run Step 2.", , "Step 1 of 5"
End Sub

vba messagebox insert line

Notice we use the & symbol to join text together. You can learn more about using & with text and other options for inserting linebreaks in our article on joining text.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

automacro

Learn More

MsgBox Icons

VBA gives you the ability to add one of four pre-built icons to your message boxes:

Icon Constant Icon
vbInformation vba information msgbox icon
vbCritical vba critical msgbox icon
vbQuestion vba question msgbox icon
vbExclamation vba exclamation msgbox icon

The Icon constant should be placed within the button argument:

Sub MsgBoxQuestionIcon()
  MsgBox "Question Example", vbQuestion
End Sub

This will generate the default ‘OK’ message box with the Question icon:

vba msgbox icon

Notice how when you type, the VBA Editor will show you the options available to you:

vba msgbox syntax

This is helpful because you don’t need to remember the exact syntax or names of icons or buttons.

Now we will demo each message box icon:

MsgBox Icons – Information

Sub MsgBoxInformationIcon()
  MsgBox "Information Example", vbInformation
End Sub

vba msgbox information

MsgBox Icons – Critical

Sub MsgBoxCriticalIcon()
  MsgBox "Critical Example", vbCritical
End Sub

vba critical message box

VBA Programming | Code Generator does work for you!

MsgBox Icons – Question

Sub MsgBoxQuestionIcon()
  MsgBox "Question Example", vbQuestion
End Sub

vba msgbox icon

MsgBox Icons – Exclamation

Sub MsgBoxExclamationIcon()
  MsgBox "Exclamation Example", vbExclamation
End Sub

msgbox exclamation icon

Below we will talk about generating message boxes with different button layouts. If you do choose a different message box type, you will need to append the icon type after the buttons using a “+”:

Sub MsgBoxQuestionIcon()
  MsgBox "Do you want to continue?", vbOKCancel + vbQuestion
End Sub

vba messagebox question

MsgBox Variables

So far we have worked primarily with the default ‘OK’ message box. The OK message box only has one option: Pressing ‘OK’ allows the code to continue.  However, you can also specify other button groupings: OK / Cancel, Yes / No, etc.

In which case you will want to perform different actions based on which button is pressed.  Let’s look at an example.

Here is the message box we will generate:

vba yes no msgbox

This is the entire code (we will break it down next):

Sub MsgBoxVariable()

Dim answer As Integer
answer = MsgBox("Do you want to Continue?", vbQuestion + vbYesNo)

  If answer = vbYes Then
    MsgBox "Yes"
  Else
    MsgBox "No"
  End If

End Sub

First we assign the messagebox output to an integer variable.

Dim answer As Integer

answer = MsgBox("Do you want to Continue?", vbQuestion + vbYesNo)

Next we use an If-Else to determine what to do based on which button is pressed:

If answer = vbYes Then
  MsgBox "Yes"
Else
  MsgBox "No"
End If

The MsgBox function returns an integer value (between 1-7) so we define the variable as an integer type.  However, instead of referring to the integer number, you can refer to a constant (ex. vbOK, vbCancel, etc.).  Look at this table to see all of the options:

Button Constant Value
OK vbOK 1
Cancel vbCancel 2
Abort vbAbort 3
Retry vbRetry 4
Ignore vbIgnore 5
Yes vbYes 6
No vbNo 7

Now we will demo each button grouping:

OK Message Box – vbOKOnly

messagebox okonly

This is the standard VBA messagebox.

Sub MsgBox_OKOnly()

Dim answer As Integer
answer = MsgBox("OKOnly Example", vbOKOnly)

End Sub

OK Cancel Message Box – vbOKCancel

messagebox okcancel

Sub MsgBox_OKCancel()

Dim answer As Integer
answer = MsgBox("OK Cancel Example", vbOKCancel)

  If answer = vbOK Then
    MsgBox "OK"
  Else
    MsgBox "Cancel"
  End If

End Sub

AutoMacro | Ultimate VBA Add-in | Click for Free Trial!

Yes No Message Box – vbYesNo

messagebox yes no

Sub MsgBox_YesNo()

Dim answer As Integer
answer = MsgBox("Yes No Example", vbYesNo)

  If answer = vbYes Then
    MsgBox "Yes"
  Else
    MsgBox "No"
  End If

End Sub

Yes No Cancel Message Box – vbYesNoCancel

messagebox yes no cancel

Sub MsgBox_YesNoCancel()

Dim answer As Integer
answer = MsgBox("Yes No Cancel Example", vbYesNoCancel)

  If answer = vbYes Then
    MsgBox "Yes"
  ElseIf answer = vbNo Then
    MsgBox "No"
  Else
    MsgBox "Cancel"
  End If

End Sub

Abort Retry Ignore Message Box – vbAbortRetryIgnore

messagebox abort retry ignore

Sub MsgBox_AbortRetryIgnore()

Dim answer As Integer
answer = MsgBox("Abort Retry Ignore Example", vbAbortRetryIgnore)

  If answer = vbAbort Then
    MsgBox "Abort"
  ElseIf answer = vbRetry Then
    MsgBox "Retry"
  Else
    MsgBox "Ignore"
  End If

End Sub

Retry Cancel Message Box – vbRetryCancel

messagebox retry cancel

Sub MsgBox_RetryCancel()

Dim answer As Integer
answer = MsgBox("Retry Cancel Example", vbRetryCancel)

  If answer = vbRetry Then
    MsgBox "Retry"
  Else
    MsgBox "Cancel"
  End If

End Sub

AutoMacro | Ultimate VBA Add-in | Click for Free Trial!

VBA MessageBox Examples

Message Box Confirmation Before Running Macro

This code will display a Yes No Message box before calling a macro. If Yes is clicked the macro is called, if No is clicked, the Macro does not run.

Sub Msgbox_BeforeRunning()

  Dim answer As Integer
  answer = MsgBox("Do you want to run Macro1?", vbQuestion + vbYesNo)

  If answer = vbYes Then Call Macro1

End Sub

vba confirmation box run macro

Yes / No Message Box – Exit Sub

Here we will confirm with the user whether to continue running a macro. If No is clicked, the code will exit the sub, otherwise the procedure will continue.

Sub Msgbox_BeforeRunning()

  Dim answer As Integer
  answer = MsgBox("Do you want to continue?", vbQuestion + vbYesNo)

  If answer = vbNo Then Exit Sub
  
  'Some Code

End Sub

vba yes no exit sub

VBA Message Box in Access VBA

All of the above examples work exactly the same in Access VBA as in Excel VBA.

vba yes no msgbox

Содержание

  1. Функция MsgBox
  2. Синтаксис
  3. Параметры
  4. Возвращаемые значения
  5. Примечания
  6. Пример
  7. См. также
  8. Поддержка и обратная связь
  9. VBA Excel. Функция MsgBox (синтаксис, параметры, значения)
  10. Синтаксис функции
  11. Параметры функции
  12. Константы параметра «Buttons»
  13. Тип и количество кнопок
  14. Стиль значка
  15. Excel миф окно да нет
  16. Как создать окно сообщения «да нет» перед запуском макроса в Excel?

Функция MsgBox

Выводит сообщение в диалоговом окне, ожидает нажатия кнопки пользователем и возвращает значение типа Integer, которое указывает, какая кнопка была нажата.

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.

Синтаксис

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 Отображение значка Warning Query (Запрос с предупреждением).
vbExclamation 48 Отображение значка Warning Message (Сообщение с предупреждением).
vbInformation 64 Отображается значок информационного сообщения.
vbDefaultButton1 0 По умолчанию активна первая кнопка.
vbDefaultButton2 256 По умолчанию активна вторая кнопка.
vbDefaultButton3 512 По умолчанию активна третья кнопка.
vbDefaultButton4 768 По умолчанию активна четвертая кнопка.
vbApplicationModal 0 Модальность на уровне приложения. Пользователь должен ответить на сообщение, чтобы продолжить работу в текущем приложении.
vbSystemModal 4096 Модальность на уровне системы. При ожидании ответа пользователя на сообщение приостанавливается работа всех приложений.
vbMsgBoxHelpButton 16384 Добавляет кнопку Справка в окно сообщения.
vbMsgBoxSetForeground 65536 Расположение окна сообщения на переднем плане.
vbMsgBoxRight 524288 Текст выравнивается по правому краю.
vbMsgBoxRtlReading 1048576 Система чтения справа налево для иврита и арабского языка.

Первая группа значений (0–5) отражает число и тип кнопок в диалоговом окне. Вторая группа (16, 32, 48, 64) описывает стиль значка сообщения. Третья группа (0, 256, 512) определяет активную по умолчанию кнопку. Наконец, четвертая группа (0, 4096) устанавливает модальность сообщения. При объединении чисел в итоговое значение аргумента buttons следует использовать только один аргумент из каждой группы.

Приведенные здесь константы определены в Visual Basic для приложений, что позволяет заменять ими числовые значения в любом месте программы.

Возвращаемые значения

Константа Значение Описание
vbOK 1 OK
vbCancel 2 Отмена
vbAbort 3 Прервать
vbRetry 4 Повторить
vbIgnore 5 Пропустить
vbYes 6 Да
vbNo 7 Нет

Примечания

Если одновременно указаны аргументы файл_справки и контекст, пользователь может нажать клавишу F1 (Windows) или HELP (Macintosh) для просмотра раздела справки, соответствующего аргументу контекст. Некоторые ведущие приложения, например Microsoft Excel, автоматически добавляют кнопку Справка в диалоговое окно.

Если в диалоговом окне есть кнопка Отмена, ее нажатие равносильно нажатию клавиши ESC. Если в диалоговом окне есть кнопка Справка, для него доступна контекстная справка. Однако до нажатия какой-либо другой кнопки никакое значение не возвращается.

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

Пример

В приведенном ниже примере функция MsgBox используется для вывода сообщения о критической ошибке в диалоговом окне с кнопками Да и Нет. Кнопка Нет выбрана по умолчанию. Значение, возвращаемое функцией MsgBox, зависит от нажатой пользователем кнопки. Предполагается, что DEMO.HLP является файлом справки и содержит раздел под номером контекста 1000 .

См. также

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

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

Источник

VBA Excel. Функция MsgBox (синтаксис, параметры, значения)

Использование функции MsgBox в VBA Excel, ее синтаксис и параметры. Значения, возвращаемые функцией MsgBox. Примеры использования.

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

Синтаксис функции

MsgBox ( Prompt [, Buttons ] [, Title ])

Обязательным параметром функции MsgBox является Prompt, если Buttons и Title явно не указаны, используются их значения по умолчанию. Кроме того, если необязательные параметры не указаны и возвращаемое значение не присваивается переменной, сообщение не заключается в скобки:

Пример 1

Параметры функции

Параметр Описание Значение
по умолчанию
Prompt* Обязательный параметр. Выражение типа String, отображаемое в диалоговом окне в виде сообщения. Разделить на строки можно с помощью константы vbNewLine. Нет
Buttons Необязательный параметр. Числовое выражение, которое представляет собой сумму значений, задающих номер и тип отображаемых кнопок, стиль используемого значка, тип кнопки по умолчанию. 0
Title Необязательный параметр. Выражение типа String, отображаемое в заголовке диалогового окна. Имя приложения**

*Максимальная длина параметра Prompt составляет примерно 1024 знака и зависит от их ширины.

**В Excel по умолчанию в заголовке MsgBox выводится надпись «Microsoft Excel».

Константы параметра «Buttons»

Тип и количество кнопок

Константа Описание Значение
vbOKOnly Отображается только кнопка OK. 0
vbOKCancel Отображаются кнопки OK и Cancel (Отмена). 1
vbAbortRetryIgnore Отображаются кнопки Abort (Прервать), Retry (Повторить) и Ignore (Пропустить). 2
vbYesNoCancel Отображаются кнопки Yes (Да), No (Нет) и Cancel (Отмена). 3
vbYesNo Отображаются кнопки Yes (Да) и No (Нет). 4
vbRetryCancel Отображаются кнопки Retry (Повторить) и Cancel (Отмена). 5

Стиль значка

Константа Описание Значение
vbCritical Отображается значок Critical — Критичное сообщение, сообщение об ошибке. 16
vbQuestion Отображается значок Question — Сообщение с вопросом. 32
vbExclamation Отображается значок Exclamation — Предупреждающее сообщение. 48
vbInformation Отображается значок Information — Информационное сообщение. 64

Для просмотра отображаемых значков, скопируйте код в свой модуль и запустите на выполнение:

Источник

Excel миф окно да нет

Как создать окно сообщения «да нет» перед запуском макроса в Excel?

В Excel вы можете напрямую запустить макрос, нажав клавишу F5 ключ или щелкните Run в Microsoft Visual Basic для приложений окно. Но иногда вам может понадобиться создать окно сообщения, которое спросит пользователя, хочет ли он запустить макрос. Если да, то продолжайте выполнение кода, если нет, прекратите выполнение кода. В этой статье я расскажу о том, как создать окно сообщения «да нет» перед запуском макроса в Excel.

Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.

Код VBA: создайте окно сообщения да нет перед запуском макроса:

Внимание: В приведенном выше коде скопируйте и вставьте свой собственный код без ниже заголовок и End Sub нижний колонтитул между Если CarryOn = vbYes, то и конец, если скрипты. Смотрите скриншот:

3, Затем нажмите F5 key, появится окно с напоминанием о том, что вы хотите запустить этот код, нажмите Да кнопку, чтобы продолжить, и нажмите Нет чтобы остановиться, см. снимок экрана :

Источник

Запрос в VBA «Да», «Нет»

light26

Дата: Воскресенье, 02.09.2012, 10:46 |
Сообщение № 1

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа — работа макроса завершалась, либо продолжала выполнять другие функции
Ну, например, тут
[vba]

Code

Sub Макрос1()
        Range(«A1:C5»).Select
        MsgBox «Вы уверены, что хотите продолжить?»
      ‘ На выбор 2 варианта ответа: Да и Нет
      ‘ Если Нет, то goto Range(«D1»).Select (или сразу goto end sub)
      ‘ Если Да, то   
        Selection.ClearContents
        Range(«D1»).Select
End Sub

[/vba]


Я не волшебник. Я только учусь

Сообщение отредактировал light26Воскресенье, 02.09.2012, 11:18

 

Ответить

KuklP

Дата: Воскресенье, 02.09.2012, 11:11 |
Сообщение № 2

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Вадим, все это есть в справке. Там же и пример того, что надо.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 11:17 |
Сообщение № 3

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Quote (KuklP)

Вадим, все это есть в справке.

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


Я не волшебник. Я только учусь

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 11:21 |
Сообщение № 4

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

[vba]

Code

Sub Макрос1()
Dim xx
     Range(«A1:C5»).Select
     xx = MsgBox(«Вы уверены, что хотите продолжить?», vbYesNo, «Light26»)
     If xx = 6 Then: Selection.ClearContents: Range(«D1»).Select
     If xx = 7 Then: Exit Sub
End Sub

[/vba]

vbYes=6
vbNo=7


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 11:33 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

ABC, для особо одаренных, пожалуйста:
[vba]

Code

Sub Макрос1()
Dim xx
      Range(«A1:C5»).Select
      xx = MsgBox(«Вы уверены, что хотите продолжить?», vbYesNo, «Light26») ‘ что такое vb?
      If xx = 6 Then: Selection.ClearContents: Range(«D1»).Select ‘ я правильно понимаю, что через двоеточие можно указать макросу выполнить несколько действий?
      If xx = 7 Then: Exit Sub
End Sub

[/vba]
Почему для vbYes используется именно 6, а для vbNo — 7? И что они значат?


Я не волшебник. Я только учусь

Сообщение отредактировал light26Воскресенье, 02.09.2012, 11:36

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 11:39 |
Сообщение № 6

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

light26, в справочнике (MsgBox), для определения что Вы нажали (ДА|НЕТ)
[vba]

Code

Constant Value Description  
vbOK 1 OK  
vbCancel 2 Cancel  
vbAbort 3 Abort  
vbRetry 4 Retry  
vbIgnore 5 Ignore  
vbYes 6 Yes  
vbNo 7 No  

[/vba]


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 11:42 |
Сообщение № 7

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

еще так можно:
[vba]

Code

Sub Макрос1()
      Range(«A1:C5»).Select
      If MsgBox(«Вы уверены, что хотите продолжить?», vbYesNo, «Light26») = vbNo Then Exit Sub ‘или =7
      Selection.ClearContents
      Range(«D1»).Select
End Sub

[/vba]


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

Сообщение отредактировал ABCВоскресенье, 02.09.2012, 11:44

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 11:44 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

ABC, то-есть в строке
[vba]

Code

xx = MsgBox(«Вы уверены, что хотите продолжить?», vbYesNo, «Light26»)

[/vba]
я могу указать vbYesNoCancel и msgbox отобразит 3 кнопки?


Я не волшебник. Я только учусь

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 11:48 |
Сообщение № 9

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

да, можно, только в чем разница между No и Cancel, все равно Вы дадите же Exit sub обоим, не так ли?


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 11:56 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Quote (ABC)

в чем разница между No и Cancel,

Я просто уточнил возможность указания иных кнопок.

Quote (ABC)

все равно Вы дадите же Exit sub обоим, не так ли?

Для конкретно этого примера — да. А вообще можно для каждой кнопки дать свое значение.


Я не волшебник. Я только учусь

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 11:59 |
Сообщение № 11

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

вариант кнопки
[vba]

Code

Sub Макрос1()
Dim xx
      xx = MsgBox(«Вы уверены, что хотите продолжить?», vbYesNoCancel, «Light26»)
      If xx = 2 Then: MsgBox «Отмена», , «Вы нажали на кнопку»
      If xx = 6 Then: MsgBox «Да», , «Вы нажали на кнопку»
      If xx = 7 Then: MsgBox «Нет», , «Вы нажали на кнопку»
End Sub

[/vba]


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

Сообщение отредактировал ABCВоскресенье, 02.09.2012, 12:01

 

Ответить

KuklP

Дата: Воскресенье, 02.09.2012, 12:04 |
Сообщение № 12

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Quote

Так я же написал в прошлом посте, что справка английская.

Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника — берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 12:07 |
Сообщение № 13

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

ABC, но ведь можно и так
[vba]

Code

Sub Макрос1()
Dim xx
     xx = MsgBox(«Вы уверены, что хотите продолжить?», vbYesNoCancel, «Light26»)
     If xx = 2 Then: MsgBox «Отмена», , «Вы отменили выполнение процедуры»  ‘например, отказ от выполнения ряда команд и возврат к исходному значению
     If xx = 6 Then: MsgBox «Да», , «Вы продолжаете»
     If xx = 7 Then: MsgBox «Нет», , «Вы отказываетесь от продолжения»  ‘например, отказ от выполнения только следующей процедуры
End Sub

[/vba]


Я не волшебник. Я только учусь

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 12:10 |
Сообщение № 14

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Сергей, да я и не отмазываюсь.
Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке


Я не волшебник. Я только учусь

Сообщение отредактировал light26Воскресенье, 02.09.2012, 12:11

 

Ответить

ABC

Дата: Воскресенье, 02.09.2012, 12:11 |
Сообщение № 15

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007

тоже вариант


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

light26

Дата: Воскресенье, 02.09.2012, 12:12 |
Сообщение № 16

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013


вот и я о том же smile
Ладно, спасибо. разобрался, вроде


Я не волшебник. Я только учусь

 

Ответить

Gustav

Дата: Воскресенье, 02.09.2012, 13:08 |
Сообщение № 17

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

986

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

Quote (light26)

справка английская

В Библиотеке форума есть вполне пристойная книга П. Эйткена «Интенсивный курс программирования в Excel за выходные»: http://www.excelworld.ru/index/vba/0-12 . Про MsgBox там на страницах 123-125 весьма подробно излагается. На русском smile .

В Книгах Google тоже есть Эйткен. Вот ссылка сразу на стр. 123: http://books.google.ru/books?id=VgX0SQzeyH4C&lpg=PA1&hl=ru&pg=PA123

P.S. Еще в Библиотеке есть книга С. Роман «Использование макросов в Excel» — тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox — на 90-92 стр.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал GustavВоскресенье, 02.09.2012, 18:30

 

Ответить

_Boroda_

Дата: Понедельник, 03.09.2012, 18:17 |
Сообщение № 18

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Quote (KuklP)

Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника — берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.

Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что «Фейсом об тейбл». Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA — кое чего могем (если захотим, конечно).


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

KuklP

Дата: Понедельник, 03.09.2012, 18:24 |
Сообщение № 19

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Саш, мож ты экстрасенс?:-) Пишешь на английском, не понимая — что? А то, что ты можешь — я знаю.:-)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

Сообщение отредактировал KuklPПонедельник, 03.09.2012, 18:24

 

Ответить

nerv

Дата: Понедельник, 03.09.2012, 18:34 |
Сообщение № 20

Группа: Редакторы

Ранг: Обитатель

Сообщений: 431

Quote (KuklP)

на языке потенциального противника

с кем воюем? laugh

Quote (KuklP)

А не зная его, нечего и рыпаться писать на ВБА.

рыпаться можно. Только далеко не уедешь. Весь хелп и новая инфа на английском + по «серьезным» вопросам ничего путного не нагуглишь.

Quote (KuklP)

Саш, мож ты экстрасенс?:-)

экстасекс ) first


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина — самый громкий звук

YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba

Сообщение отредактировал nervПонедельник, 03.09.2012, 18:36

 

Ответить

In VBA, using the message box, we can create a yes no msgbox, used to record user input based on clicking yes or no. The syntax to make a yes-no message box is as follows variable = MsgBox(“Text”, vbQuestion + vbYesNo + vbDefaultButton2, “Message Box Title”) where one must declare variable as an integer.

In VBA coding, we often need to collect the input values from the users to perform some tasks. One of such tasks is collecting the users’ yes or no responses. By using VBA MsgBox Yes No method, we can write the code to proceed further in the code.

In certain situations, we may need to present a “Yes” or “No” option in front of the user to give their response based on them. Then, we can run the VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more.

For example, look at the below image of the MsgBox in VBAVBA MsgBox function is an output function which displays the generalized message provided by the developer. This statement has no arguments and the personalized messages in this function are written under the double quotes while for the values the variable reference is provided.read more.

VBA Message Box Continue.png

If the user says Yes, “we can write code to perform a specific task,” and if the user says “No,” we can write code to perform another set of tasks.

Table of contents
  • Excel VBA MsgBox (Yes/No)
    • How to Work with MsgBox Yes/No Response?
      • Example #1 – Copy and Paste based on Response
      • Example #2 – Hide & Unhide Sheets Based on the Response
    • Recommended Articles

How to Work with MsgBox Yes/No Response?

You can download this VBA Message Box Yes or No Excel Template here – VBA Message Box Yes or No Excel Template

Example #1 – Copy and Paste based on Response

Look at the below code.

Code:

Sub MessageBox_Yes_NO_Example1()

 Dim AnswerYes As String
 Dim AnswerNo As String

 AnswerYes = MsgBox("Do you Wish to Copy?", vbQuestion + vbYesNo, "User Repsonse")

 If AnswerYes = vbYes Then
   Range("A1:A2").Copy Range("C1")
 Else
   Range("A1:A2").Copy Range("E1")
 End If

End Sub

VBA Message box Example 1

Explanation:

The above has declared the variable as String i.e.

Dim AnswerYes As String

In the next line, we have assigned the value through a message box asking, “Do you wish to copy?”.

AnswerYes = MsgBox("Do You Wish to Copy?", vbQuestion + vbYesNo, "User Repsonse")

Now, the IF statement evaluates the response given through the message box. For example, if the message box result is vbYes, it will copy the range A1 to A2 and paste it into cell C1.

   If AnswerYes = vbYes Then
      Range("A1:A2").Copy Range("C1")

If the response given by the message box is No, then it will copy the range A1 to A2 and paste it into cell E1.

Else
Range("A1:A2").Copy Range("E1")
End If

We have entered a few values in cells A1 and A2 now.

VBA Message box Example 1-1

Now, we will run the code using the F5 key, or through the run option, a message box will appear in front of us and ask for our response.

VBA Message box Example 1-2

If we click “Yes,” it will copy the range A1 to A2 and paste it into the C1 cell. Now, we will click on “Yes” and see the result.

VBA Message box Example 1-3

So, it has performed the task assigned if the response is YES.

Now again, we will run the code.

yes or no Example 1-4

This time we will select No and see what happens.

yes or no Example 1-5

Yes, it performed the task assigned in the code i.e.

Else
Range("A1:A2").Copy Range("E1")

Example #2 – Hide & Unhide Sheets Based on the Response

The below code will hide all the sheets except the active sheet if the response is yes.

Code:

Sub HideAll()

  Dim Answer As String
  Dim Ws As Worksheet

  Answer = MsgBox("Do you Wish to Hide All?", vbQuestion + vbYesNo, "Hide")
  
  If Answer = vbYes Then

    For Each Ws In ActiveWorkbook.Worksheets
     If Ws.Name <> ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden
    Next Ws

   ElseIf Answer = vbNo Then MsgBox "You have selected not to hide the sheets", vbInformation, "No Hide"
   End If

End Sub

The above code will hide all the worksheets except the sheet we are in right now if the response from the message box is YES.

yes or no Example 2

If the response from the message box is NO, it will display the message box saying, “You have selected not to hide the sheets.”

yes or no Example 1-6

Similarly, the below code will unhide the sheet if the response is Yes.

Code:

Sub UnHideAll()

  Dim Answer As String
  Dim Ws As Worksheet
 
  Answer = MsgBox("Do you Wish to Unhide All?", vbQuestion + vbYesNo, "Hide")

  If Answer = vbYes Then

    For Each Ws In ActiveWorkbook.Worksheets
       Ws.Visible = xlSheetVeryHidden
  Next Ws

 ElseIf Answer = vbNo Then MsgBox "You have selected not to Unhide the sheets", vbInformation, "No Hide"
 End If

End Sub

It works the same as the hide sheet code. If yes, it will unhide. If not, it will not unhide.

Recommended Articles

This article has been a guide to VBA Message Box. Here, we discuss creating a Yes or No response in the Excel VBA using MsgBox, practical examples, and a downloadable Excel template. Below you can find some useful Excel VBA articles: –

  • VBA Find Next
  • VBA ISERROR
  • VBA Collection Object
  • VBA Text Function
  • VBA Save As

В Excel вы можете напрямую запустить макрос, нажав клавишу F5 ключ или щелкните Run в Microsoft Visual Basic для приложений окно. Но иногда вам может понадобиться создать окно сообщения, которое спросит пользователя, хочет ли он запустить макрос. Если да, то продолжайте выполнение кода, если нет, прекратите выполнение кода. В этой статье я расскажу о том, как создать окно сообщения «да нет» перед запуском макроса в Excel.

Перед запуском макроса с кодом VBA создайте окно сообщения да нет


Перед запуском макроса с кодом VBA создайте окно сообщения да нет

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.

Код VBA: создайте окно сообщения да нет перед запуском макроса:

Sub continue()
CarryOn = MsgBox("Do you want to run this macro?", vbYesNo, "Kutools for Excel")
If CarryOn = vbYes Then
'put rest of code here
End If
End Sub

Внимание: В приведенном выше коде скопируйте и вставьте свой собственный код без ниже заголовок и End Sub нижний колонтитул между Если CarryOn = vbYes, то и конец, если скрипты. Смотрите скриншот:

окно сообщения документа да нет макрос 1

3, Затем нажмите F5 key, появится окно с напоминанием о том, что вы хотите запустить этот код, нажмите Да кнопку, чтобы продолжить, и нажмите Нет чтобы остановиться, см. снимок экрана :

окно сообщения документа да нет макрос 2


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (1)


Оценок пока нет. Оцените первым!

Понравилась статья? Поделить с друзьями:
  • Миф excel for с массивом
  • Миф excel for описание
  • Миф excel for all cells in range
  • Миф excel close excel
  • Минимальные знания в excel