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

Диалоги являются полностью нужным средством для увеличения маневренности и гибкости макропрограмм.
Они представлены 2-мя командами: MsgBox (диалог с клавишами) и InputBox (для ввода значений).
Для начинающих программистов этого полностью довольно.

Синтаксис установок:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

Можно увидеть, что отдельные элементы очень идентичны и повторяются:
prompt — единственный неотклонимый элемент (он задает текст сообщения, выводимого снутри окна диалога);
title — заголовок окна, обобщающий вопросец диалога;
helpfile. — ваша подсказка, обсуждение (и создание) которой выходит за рамки изучаемого материала.

InputBox

Диалог предназначен для ввода единичного символьного (строкового) значения. Как видно из основного синтаксиса:

InputBox(prompt[, title] [, default] [, xpos] [, ypos]),

неотклонимым является лишь поясняющий текст (prompt).

Возникает возможность указать значение по дефлоту (default), третировать которым не стоит. Ведь в почти всех вариантах оно быть может предсказано и юзеру не придется заниматься мучительным вводом.

Также можно указать в твипсах (1/20 часть пикселя, а не пт, как принято в полиграфии) координаты окна (xpos, ypos). Если надлежащие координаты опущены, то диалог центрируется относи­тельно горизонтали и опускается приблизительно на третья часть экрана по вертикали.

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

Итог будет смотреться так:

Если пристально поглядеть на текст программки, то закономерным будет вопросец: переменной x (числового типа Single) будет передаваться строковое значение, что является неверным?

Но в VBA это будет обработано верно, если юзер введет хоть какое число: преобразование пройдет само собой. Если же он введет буковкы либо нажмёт клавишу отмены (Cancel), то переменной будет присваиваться строковое значение, что породит ошибку:

Избежать схожей ситуации можно 2-мя методами, предоставляющими разные способности.

  1. преобразованы в 0,
  2. если в начале строки введены числа («125xyz»), то строчка преобразуется в число (125).

При нажатии на клавишу Cancel будет возвращена пустая строчка («»), преобразуемая в 0.

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

  1. В строке, выделенной красноватым, проведен анализ результата ввода и выход из программки при пустой строке. Таковой подход полностью применим и для варианта, когда юзер запамятовал задать значение. Тут ему быть может задан вопросец о необходимости прерывания программки.
  2. Значение, сохраненное в xVal, можно употреблять и в предстоящем. В том числе для детализированной разборки либо анализа, в том числе на предмет корректности ввода.
  3. Возникает возможность ввести несколько значений, к примеру, через запятую, которые позже можно рассматривать и употреблять в согласовании с планом программера.
  4. Занята доборная память, что является платой за функциональность.
Интересно почитать:  Как в excel открыть скрытую строку

InputBox в Excel VBA

К огорчению, объектная модель Word и Excel не совпадают, в связи с чем приходится гласить, что в Excel можно пользоваться ещё одним методом:

    Список типов:
  • 0 = formulas
  • 1 = numbers
  • 2 = strings
  • 4 = logical values
  • 8 = cell references
  • 16 = error values
  • 64 = arrays

MsgBox

Вспомним синтаксис команды:

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

Атрибут buttons представляет собой сумму 3-х (пореже — наиболее) целых чисел, значащих: набор клавиш, картину, клавишу по дефлоту. Крайняя достаточно принципиальна, потому что почти все юзеры невнимательно относятся к надписям в диалоге, и еще разумнее активизировать для него ту клавишу, нажатие на которую требуется почаще. Заместо чисел можно употреблять системные переменные памяти. Подробная информация приведена в таблице.

Переменная Word Значение Описание
vbOKOnly Вывести лишь клавишу OK
vbOKCancel 1 Вывести клавиши OK и Cancel
vbAbortRetryIgnore 2 Вывести клавиши Abort, Retry и Ignore
vbYesNoCancel 3 Вывести клавиши Yes, No и Cancel
vbYesNo 4 Вывести клавиши Yes и No
vbRetryCancel 5 Вывести клавиши Retry и Cancel
vbCritical 16 Вывести картину Critical Message
vbQuestion 32 Вывести картину Warning Query
vbExclamation 48 Вывести картину Warning Message
vbInformation 64 Вывести картину Information Message
vbDefaultButton1 По дефлоту активна 1‑я клавиша
vbDefaultButton2 256 По дефлоту активна 2‑я клавиша
vbDefaultButton3 512 По дефлоту активна 3‑я клавиша
vbDefaultButton4 768 По дефлоту активна 4‑я клавиша
vbApplicationModal Диалог модален для Word: для продолжения работы в приложении и самого макроса необходимо надавить на одну из клавиш
vbSystemModal 4096 Диалог модален для Windows: все приложения прекращают работу до того времени, пока юзер не нажмет на одну из клавиш
vbMsgBoxHelpButton 16384 Добавляет в диалог клавишу Help (Справка)
VbMsgBoxSetForeground 65536 Переводит окно диалога на фронтальный план (практическое применение непонятно)
vbMsgBoxRight 524288 Надписи выравниваются на право
vbMsgBoxRtlReading 1048576 Для языков, читаемых справа влево
Интересно почитать:  В excel замена символа в строке

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

Пример: MsgBox «Значение х достигнуло » & x

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

Необходимо подчеркнуть, что клавиша ОК владеет увлекательным свойством: её можно надавить как мышкой, так и кнопками Enter, Space и Esc.

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

Ниже приведен перечень значений, возвращаемых функцией MsgBox() в зависимости от нажатой в диалоге клавиши.

Значение Константа Word Надпись на кнопочке
1 vbOK OK
2 vbCancel Cancel
3 vbAbort Abort
4 vbRetry Retry
5 vbIgnore Ignore
6 vbYes Yes
7 vbNo No

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

Можно сказать, что в нем допущена интерфейсная ошибка, потому что нажатие клавиши Esc не дозволит закрыть диалог. Для комфортности лучше употреблять сразу клавиши Yes, No и Cancel. Для доработки пригодится лишь поменять в тексте программки 4 на 3: ведь нажатие на Cancel обработается также, как и No (выход из программки).

Направьте внимание! Заместо 4+48, можно было бы записать сходу итог сложения (52). Программка выполнилась бы чуточку резвее, но редактирование человеком сделалось бы труднее. Также можно поменять эту форму сложением программных констант: vbYesNo+vbExclamation, что легче осознать при чтении.

Безупречным(?) решением было бы добавление клавиши Cancel, как показано ниже.

Интересно почитать:  Как в excel скрыть строки с плюсом

Copyright © 1993–2021 Мацкявичюс Д.А. Все права защищены.
Никакая часть веб-сайта не быть может воспроизведена никаким методом без письменного разрешения правообладателя и очевидной ссылки на данный ресурс.

Formation EXCEL VBA

Le langage VBA, ou Visual Basic for Applications, est le langage de programmation commun à toutes les applications de la suite bureautique Microsoft Office. Pendant la formation EXCEL VBA, vous apprendrez a créer des scripts, programmes, afin d’améliorer votre utilisation.

Proche de chez vous

Éligible au CPF

DURÉE CONSEILLÉE DE FORMATION
3 jours

PUBLIC CONCERNÉ
Tout Public

PRÉREQUIS
Avoir un ordinateur équipé de Wifi

Passeport de Compétences Informatique Européen
Domaine : Tableurs

OBJECTIFS

Être capable de valider et vérifier les données des tableurs – Être capable d’améliorer la productivité en travaillant avec des plages de cellules prénommées, des macros et des modèles – Être capable d’utiliser les fonctions de liaison, d’intégration et d’importation pour intégrer les données – Être capable de collaborer et examiner les tableurs – Appliquer les fonctions de sécurité du tableur – Être capable de développer en VBA – Être capable d’améliorer la productivité avec des scripts VBA.

PROGRAMME

LANGAGE VBA

Variables
Types de données
Conditions
Boucles
Fonctions
Classes
Tableaux
String
Date

EXCEL AVANCE

Formatage conditionnel
Fonctions
Diagrammes
Manipuler les tableaux et les listes
Valider les données
Intégrer les données
Sécuriser les données

MACRO DANS EXCEL

Intérêt des macros
Enregistrement
Exécution
Edition
Exécution locale ou globale

EDITEUR VISUAL BASIC

Environnement de développement
Utiliser des scripts VBA dans Excel
Architecture d’une application VBA
Commenter et documenter ses scripts
Déboguer son application
Protéger le code

INTERACTION VBA / EXCEL

Comprendre l’API dans son ensemble
Cellule
Plage
Feuille
Classeur
Application
Boîtes de dialogue
Evénements
Gestion des erreurs
Affectation des macros à des boutons
Affectation des macros à des images
Affectation des macros aux menus

FORMULAIRES USERFORM

Composants d’un UserForm (bouton, liste…)
Tabulation entre les composants
Afficher un UserForm
Échanger des données avec le UserForm

Ссылка на основную публикацию
Adblock
detector