Vba excel диалоговое окно да нет
Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции
Ну, например, тут
[vba]
Sub Макрос1()
Range("A1:C5").Select
MsgBox "Вы уверены, что хотите продолжить?"
' На выбор 2 варианта ответа: Да и Нет
' Если Нет, то goto Range("D1").Select (или сразу goto end sub)
' Если Да, то
Selection.ClearContents
Range("D1").Select
End Sub
Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции
Ну, например, тут
[vba]
Sub Макрос1()
Range("A1:C5").Select
MsgBox "Вы уверены, что хотите продолжить?"
' На выбор 2 варианта ответа: Да и Нет
' Если Нет, то goto Range("D1").Select (или сразу goto end sub)
' Если Да, то
Selection.ClearContents
Range("D1").Select
End Sub
Я не волшебник. Я только учусь
Sub Макрос1()
Range("A1:C5").Select
MsgBox "Вы уверены, что хотите продолжить?"
' На выбор 2 варианта ответа: Да и Нет
' Если Нет, то goto Range("D1").Select (или сразу goto end sub)
' Если Да, то
Selection.ClearContents
Range("D1").Select
End Sub
Так я же написал в прошлом посте, что справка английская.
а я не знаю даже как задать условия поиска.
русские справки не открываются
Так я же написал в прошлом посте, что справка английская.
а я не знаю даже как задать условия поиска.
русские справки не открываются light26
Так я же написал в прошлом посте, что справка английская.
а я не знаю даже как задать условия поиска.
русские справки не открываются Автор - light26
Дата добавления - 02.09.2012 в 11:17
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
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
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
vbYes=6
vbNo=7 Автор - ABC
Дата добавления - 02.09.2012 в 11:21
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
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
Я не волшебник. Я только учусь
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:33
Constant Value Description
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
Constant Value Description
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
Constant Value Description
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
Sub Макрос1()
Range("A1:C5").Select
If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7
Selection.ClearContents
Range("D1").Select
End Sub
Sub Макрос1()
Range("A1:C5").Select
If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7
Selection.ClearContents
Range("D1").Select
End Sub
MS Excel 2007 and 2010.
-------------------------------
С Уважением, Даулет
Sub Макрос1()
Range("A1:C5").Select
If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7
Selection.ClearContents
Range("D1").Select
End Sub
[/vba]
я могу указать vbYesNoCancel и msgbox отобразит 3 кнопки? Автор - light26
Дата добавления - 02.09.2012 в 11:44
да, можно, только в чем разница между No и Cancel, все равно Вы дадите же Exit sub обоим, не так ли? ABC
Для конкретно этого примера - да. А вообще можно для каждой кнопки дать свое значение. Автор - light26
Дата добавления - 02.09.2012 в 11:56
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
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
MS Excel 2007 and 2010.
-------------------------------
С Уважением, Даулет
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
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает. KuklP
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает. Автор - KuklP
Дата добавления - 02.09.2012 в 12:04
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
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
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
Сергей, да я и не отмазываюсь.
Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке
Сергей, да я и не отмазываюсь.
Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке light26
Я не волшебник. Я только учусь
вот и я о том же
Ладно, спасибо. разобрался, вроде Автор - light26
Дата добавления - 02.09.2012 в 12:12
P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр.
P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр. Gustav
P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр. Автор - Gustav
Дата добавления - 02.09.2012 в 13:08
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно).
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно). _Boroda_
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.
Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно). Автор - _Boroda_
Дата добавления - 03.09.2012 в 18:17
Саш, мож ты экстрасенс?:-) Пишешь на английском, не понимая - что? А то, что ты можешь - я знаю.:-) KuklP
Функция MsgBox имеет следующие аргументы:
Необязательный аргумент. Строковое выражение, отображаемое в заголовке диалогового окна. Если аргумент заголовок опущен, в заголовке выводится имя приложения.
файл_справки
Необязательный аргумент. Строковое выражение, определяющее файл, в котором содержится контекстная справка для данного диалогового окна. Если задан аргумент файл_справки, необходимо также указать аргумент контекст.
Необязательный аргумент. Числовое выражение, представляющее собой номер контекста, присвоенный автором справки соответствующему разделу. Если задан аргумент контекст, необходимо также указать аргумент файл_справки.
Аргумент кнопкиАргумент имеет следующие параметры:
Отображается только кнопка ОК.
Отображаются кнопки ОК и Отмена.
Отображаются кнопки Прервать, Повторить и Пропустить.
Отображаются кнопки Да, Нет и Отмена.
Отображаются кнопки Да и Нет.
Отображаются кнопки Повторить и Отмена.
Отображается значок запроса с предупреждением .
По умолчанию активна первая кнопка.
По умолчанию активна вторая кнопка.
По умолчанию активна третья кнопка.
По умолчанию активна четвертая кнопка.
Текст выравнивается по правому краю.
Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
Примечание: Эти константы заданы Visual Basic для приложений. Таким образом, их можно использовать в любом месте кода, а не фактические значения.
Возвращаемые значения
Если указаны аргументы файл_справки и контекст, пользователь может, нажав клавишу F1 (Windows) или HELP (Макинтош), открыть раздел справки, заданный аргументом контекст. Некоторые принимающие приложения, например Microsoft Excel, также автоматически добавляют в диалоговое окно кнопку "Справка".
Если в диалоговом окне отображается кнопка "Отмена", то нажатие клавиши ESC действует так же, как нажатие кнопки "Отмена". Если диалоговое окно содержит кнопку "Справка", для него предоставляется контекстная справка. Однако значение не возвращается до тех пор, пока не будет нажата одна из других кнопок.
Примечание: Чтобы указать больше аргумента, необходимо использовать msgBox в выражение. Чтобы опустить некоторые позиционные аргументы, необходимо включить соответствующий запятый.
Пример
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA).
Displays a message in a dialog box, waits for the user to click a button, and returns an Integer indicating which button the user clicked.
Interested in developing solutions that extend the Office experience across multiple platforms? Check out the new Office Add-ins model. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
Syntax
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
The MsgBox function syntax has these named arguments:
Part | Description |
---|---|
prompt | Required. String expression displayed as the message in the dialog box. The maximum length of prompt is approximately 1024 characters, depending on the width of the characters used. If prompt consists of more than one line, you can separate the lines by using a carriage return character (Chr(13)), a linefeed character (Chr(10)), or carriage return - linefeed character combination (Chr(13) & Chr(10)) between each line. |
buttons | Optional. Numeric expression that is the combination of values specifying the number and type of buttons to display, the icon style to use, the identity of the default button, and the modality of the message box. If omitted, the default value for buttons is 0. |
title | Optional. String expression displayed in the title bar of the dialog box. If you omit title, the application name is placed in the title bar. |
helpfile | Optional. String expression that identifies the Help file to use to provide context-sensitive Help for the dialog box. If helpfile is provided, context must also be provided. |
context | Optional. Numeric expression that is the Help context number assigned to the appropriate Help topic by the Help author. If context is provided, helpfile must also be provided. |
Settings
Constant | Value | Description |
---|---|---|
vbOKOnly | 0 | Display OK button only. |
vbOKCancel | 1 | Display OK and Cancel buttons. |
vbAbortRetryIgnore | 2 | Display Abort, Retry, and Ignore buttons. |
vbYesNoCancel | 3 | Display Yes, No, and Cancel buttons. |
vbYesNo | 4 | Display Yes and No buttons. |
vbRetryCancel | 5 | Display Retry and Cancel buttons. |
vbCritical | 16 | Display Critical Message icon. |
vbQuestion | 32 | Display Warning Query icon. |
vbExclamation | 48 | Display Warning Message icon. |
vbInformation | 64 | Display Information Message icon. |
vbDefaultButton1 | 0 | First button is default. |
vbDefaultButton2 | 256 | Second button is default. |
vbDefaultButton3 | 512 | Third button is default. |
vbDefaultButton4 | 768 | Fourth button is default. |
vbApplicationModal | 0 | Application modal; the user must respond to the message box before continuing work in the current application. |
vbSystemModal | 4096 | System modal; all applications are suspended until the user responds to the message box. |
vbMsgBoxHelpButton | 16384 | Adds Help button to the message box. |
vbMsgBoxSetForeground | 65536 | Specifies the message box window as the foreground window. |
vbMsgBoxRight | 524288 | Text is right-aligned. |
vbMsgBoxRtlReading | 1048576 | Specifies text should appear as right-to-left reading on Hebrew and Arabic systems. |
The first group of values (0-5) describes the number and type of buttons displayed in the dialog box; the second group (16, 32, 48, 64) describes the icon style; the third group (0, 256, 512) determines which button is the default; and the fourth group (0, 4096) determines the modality of the message box. When combining numbers to create a final value for the buttons argument, use only one number from each group.
These constants are specified by Visual Basic for Applications. As a result, the names can be used anywhere in your code in place of the actual values.
Return values
Constant | Value | Description |
---|---|---|
vbOK | 1 | OK |
vbCancel | 2 | Cancel |
vbAbort | 3 | Abort |
vbRetry | 4 | Retry |
vbIgnore | 5 | Ignore |
vbYes | 6 | Yes |
vbNo | 7 | No |
Remarks
When both helpfile and context are provided, the user can press F1 (Windows) or HELP (Macintosh) to view the Help topic corresponding to the context. Some host applications, for example, Microsoft Excel, also automatically add a Help button to the dialog box.
If the dialog box displays a Cancel button, pressing the ESC key has the same effect as clicking Cancel. If the dialog box contains a Help button, context-sensitive Help is provided for the dialog box. However, no value is returned until one of the other buttons is clicked.
To specify more than the first named argument, you must use MsgBox in an expression. To omit some positional arguments, you must include the corresponding comma delimiter.
Example
This example uses the MsgBox function to display a critical-error message in a dialog box with Yes and No buttons. The No button is specified as the default response. The value returned by the MsgBox function depends on the button chosen by the user. This example assumes that DEMO.HLP is a Help file that contains a topic with a Help context number equal to 1000 .
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Синтаксис
Синтаксис функции MsgBox включает следующие именованные аргументы:
Параметры
Аргумент кнопки может принимать следующие значения:
Приведенные здесь константы определены в 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 в выражении. Чтобы пропустить некоторые из позиционных аргументов, нужно вставить соответствующие запятые.
Пример
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Синтаксис функции MsgBox
Функция MsgBox имеет следующий синтаксис:
Диалоговое окно вида:
Ниже приведен полный список констант и эквивалентных им цифровых значений:
Константа
Значение
Описание
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
Ниже таблица со списком констант иконок и констант, устанавливающих фокус на кнопках:
Константа
Значение
Описание
vbCritical
vbQuestion
Выводит иконку с вопросительным знаком
vbExclamation
Выводит иконку с восклицательным знаком (в желтом треугольнике)
vbInformation
vbDefaultButton1
Устанавливает фокус по умолчанию на первой кнопке
vbDefaultButton2
Устанавливает фокус по умолчанию на второй кнопке
vbDefaultButton3
Устанавливает фокус по умолчанию на третьей кнопке
vbDefaultButton4
Устанавливает фокус по умолчанию на четвертой кнопке
vbMsgBoxHelpButton
Добавляет кнопку Справка
vbMsgBoxRight
vbMsgBoxRtlReading
Определяться выбор пользователя будет с помощью условия IF. В некоторых ситуациях можно использовать Select Case.
Создаем новую книгу Excel и переходим в режим Visual Basic (Alt+F11). В окне проекта выбираем «Лист1» и кликаем по нему два раза ЛКМ.
В открывшемся окне редактора кода вводим следующую процедуру:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Второй вариант вызова диалога с помощью Select Case.
Создадим вторую процедуру на Листе 2. Код процедуры следующий:
Select Case mes
Case vbYes: Selection = "Нажата ДА"
Case vbNo: Selection = "Нажата НЕТ"
Case vbCancel: Selection = "Нажата Отмена"
End Select
End Sub
В этом случае результат вызова MsgBox присваивается переменной mes и далее в Select Case ищется совпадение и согласно совпадения, выполняются действия.
Вот и все. Ниже прикреплен готовый пример, рассмотренный в этой статье.
Перечень констант и значений, возвращаемых функцией MsgBox:
Константа
Значение
Кнопка
vbOK
OK
vbCancel
Отмена
vbAbort
Прервать
vbRetry
Повтор
vbIgnore
Пропустить
vbYes
Да
vbNo
Нет
Прикрепленный файл: msgbox.zip
Читайте также: