Суббота, 23.11.2024, 03:45
Приветствую Вас Гость | RSS
Главная | Оператор MsgBox | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Календарь
«  Ноябрь 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • База знаний uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Делаем сами

           Оператор MsgBox

         Оператор MsgBox предназначен для вывода Информационного окна или Диалогового окна. Информационное окно ( в простейшем виде) имеет текст сообщения и единственную кнопку. Окно ожидает нажатие на кнопку и после нажатия выполняется следующий за оператором код программы. При варианте Диалогового окна оператор в качестве функции может присваивать (возвращать) некоторые значения переменной или участвовать в более сложных кодах программы (ниже будут приведены примеры некоторых вариантов кодов программы).

    Пример Информационного окна

    Пример Диалогового окна

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

    Для информационного окна синтаксис будет таким:

    MsgBox promt [,buttons] [,titl] [,helpfile,context]

    А для диалогового окна синтаксис такой:

    Переменная = MsgBox (promt [,buttons] [,titl] [,helpfile,context])

     

     

    Часто в литературе и в Интернете [1 с.321, 5 ] можно встретить такую запись (синтаксис) для оператора MsgBox:

    MsgBox (promt [,buttons] [,titl] [,helpfile,context])

    Однако, если записать такой код в процедуру программы, то будет выдана ошибка !!!.

    Примечание: Для информационного окна при составлении аргумента “buttons” не следует указывать константу, определяющую количество кнопок и надписи на них (см.Табл1). Если константу не указывать окно будет выводится с одной кнопкой “ОК” Указывать несколько кнопок в информационном окне, по-моему, нет смысла !!!Ниже приведен пример Информационного окна со значком и заголовком окна (Константа, отвечающая за вывод кнопок – опущена).

     

    Аргументы записываются через запятую или точку с запятой, в зависимости от настройки компьютера [2 c.269].

     

    Первый аргумент – promt отвечает за содержание текста сообщения в диалоговом окне и может быть записан:

    - в виде текста, заключенного в двойные кавычки;

    Если текст очень длинный, то его можно разнести на строки с помощью такого кода:

     

    - в цифровой форме, тогда кавычки опускаются;

    - в виде суммы текста и цифр. В этом случае текст берется в двойные кавычки, а цифры записываются без кавычек.

     

    - в виде оператора или суммы текста и оператора. Между текстом и оператором ставится знак &. В этом случае в окно выводится сообщение – результат действия соответствующего оператора и текста.

            В примере аргумент записан в виде суммы текста и оператора умножения двух чисел

     

           Пример вывода полного имени файла «Документ», находящегося в одной с программой папке  «Пример», которая находиться на рабочем столе (в примере также использован оператор переноса строки vbCrLf см. пример выше.):

    - в виде суммы текста и функции, например, возвращающей часть даты

     

     

     

     

    Второй аргумент – buttons. Этот аргумент отвечает за оформление кнопок, выводимых в окне (количество кнопок и надписи на них ) , а также, за вывод различных значков в окно. Пример одного из вариантов оформления диалогового окна приведен ниже:

    Для второго аргумента в операторе MsgBox дается такое определение [2]: числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения.

    Иными словами второй аргумент можно набрать в виде суммы констант или эквивалентным им числовых значений. В статьях и литературе этот момент описан достаточно невнятно. Практически у всех это описание с небольшими вариациями – одинаково. Видимо, лучше этот момент пояснит пример написания второго аргумента "buttons" с, практически, максимальным количеством констант.

           Переменная= MsgBox ("Пример с кнопками и значками", vbAbortRetryIgnore + vbQuestion + vbDefaultButton2 + vbMsgBoxHelpButton)

    или в цифровом виде

           Переменная= MsgBox ("Пример с кнопками и значками", 2 + 32 + 256 + 16384)

    Можно также записать аргумент в виде комбинации суммы констант в виде имени и значения.

          Переменная = MsgBox ("Пример с кнопками и значками" , 2 + vbQuestion + 256 + vbMsgBoxHelpButton_

    Результат выполнения приведенных выше кодов выглядит так:

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

    Табл.1. Имя константы и эквивалентное ей цифровое значение, отвечающие за вывод в диалоговое окно кнопок (количество кнопок и надписи на них)


     

     

    Табл.2. Имя константы и эквивалентное ей цифровое значение, отвечающие за вывод в диалоговое окно значков

    Табл.3. Имя константы и эквивалентное ей цифровое значение, отвечающая за выделение кнопки

     

    Табл.4. Имя константы и эквивалентное ей цифровое значение, отвечающая за вывод кнопки Справка и некоторые другие действия, указанные в таблице ниже:

    Табл.5. Перечень констант и значений, возвращаемых функцией MsgBox:

     

     

    Примеры использования оператора MsgBox в качестве функции [6, 8 ]. В этом случае оператор будет выводить и диалоговое окно на экран монитора и при нажатии на определенную кнопку в окне производить какие либо действия.

    Пример1. Если предполагается использовать в Диалоговом окне две кнопки “Yes” («Да») и “No” («Нет»)

    то можно воспользоваться следующим кодом:

     

    Или

     

     

     

    Пример2 Если предполагается использовать более двух кнопок

    то можно воспользоваться следующим кодом:

     

     

     

     

    Ссылки

    1. Джон Уокенбах Профессиональное программирование на VBA в Excel. Диалектика. Москва-Санкт-Петербург-Киев, 2002. – 780 с.

    2. Комягин В.Б., Коцубинский А.О. Excel 7.0 for Windows 95 в примерах (русская и английская версии) изд.Нолидж. М.,1996, -430 с.

    3. Слепцова Л.Д. Программирование на VBA в Microsoft Office 3. 2010. М., С-П, К, 2010 г. -431 с.

    4. Широкова О.А., Гайнанова Р.Ш. Программирование на Visual Basic for Applications в Excel. Казанский (Приволжский) 

        федеральный университет. Казань. 2012, =153 с.

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

       https://vremya-ne-zhdet.ru/vba-excel/funktsiya-msgbox-parametry/

     

    6. Примеры работы с диалоговыми сообщениями (msgbox) в VBA

        http://www.programm-school.ru/primer_raboty_s_msgbox.html

     

    7. Построение диалогов

        http://it-dm.narod.ru/it_DM/VBA/it_DM_vba_dial1.html

     

    8. VBA-Урок 10. Диалоговые окна (Dialog boxes)

        http://moonexcel.com.ua/уроки-vba10-диалоговые-окна_ru

     

    9. Функция MsgBox

        http://www.excelworld.ru/stuff/vba_function/loading_data/msgbox/22-1-0-74

     

    10.WWW. PROGRAMM SCHOOL Уроки программирования для начинающих

         http://www.programm-school.ru/primer_raboty_s_msgbox.html

    Конструктор сайтов - uCozCopyright MyCorp © 2024