Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Взаємодії з користувачем, функції виведення інформації MsgBox і Popup

У багатьох програмах VBA необхідно забезпечити взаємодію з користувачем - проінформувати його про щось і (можливо) отримати від нього відповідну реакцію. В принципі, для користувача можна просто вивести текст у вікні програми, або скористатися формою і елементами управління. У цій частині ми розглянемо тільки застосування для цієї мети вбудованих функцій VBA.


MsgBox

Найпростіший спосіб вивести інформацію користувачеві - скористатися вбудованою функцією VBA MsgBox. Ми вже використовували її в попередніх статтях, але розберемо її синтаксис більш детально:

MsgBox Prompt [, Buttons] [, Title] [, HelpFile, Context]

Prompt - Потрібно. Вираз типу String, що відображається в діалоговому вікні у вигляді повідомлення. Максимальна довжина параметра Prompt становить приблизно 1024 знака і залежить від ширини використовуваних знаків.

Buttons - Не обов'язково. Числове вираження, що є сумою значень, які задають номер і тип відображуваних кнопок, стиль використовуваного значка, тип кнопки за замовчуванням і ознака модальності вікна повідомлення. Якщо параметр Buttons опущений, то за умовчанням використовується нульове значення.

Title - Не обов'язково. Вираз типу String, що відображається в рядку заголовка діалогового вікна. Якщо аргумент Title опущений, то в рядок заголовка поміщається назва програми.

HelpFile - Не обов'язково. Параметр визначає файл довідки, який буде використовуватися для діалогового вікна (вказуємо в лапках посилання на потрібний файл). Крім того, при використанні цього параметру параметр "Context" стає обов'язковим і повинен бути використаний.

Context - являє собою числовий параметр, який визначає номер, присвоєний відповідній довідці. Це необов'язковий параметр, але він стає обов'язковим, якщо використовується параметр.

Примітка: HelpFile має бути в форматі ".chm" його можна створити за допомогою програмних засобів, таких як HTM2CHM и HTML Help Workshop


Можливостей у MsgBox досить багато:

- можна відображати різний кількість кнопок (OK, Cancel, Abort, Retry, Ignore, Yes, No)

- можна показувати символи Critical, Warning, Question, Information

- можна вибирати кнопку за замовчуванням

- можна робити вікно модальним або звичайним.


Prompt виведення в кілька рядків

Дуже часто виникає необхідність форматування тексту для виведення її на екран користувача, для цього можна використати наступні способи:

- Chr(10) або vbLf - Новий рядок (падає курсор вниз на один рядок)

- Chr(13) або vbCr - Повернення каретки - (переміщує курсор вліво більшу сторону)

- Chr(13) & Chr(10) або vbCrLf - Рекомендована до використання комбінація

- vbNewLine - Являє символ нового рядка для функцій друку і відображення.


Buttons варіанти вибору:

Назва кнопкиЧисловий символОпис
vbOKOnly0Відображається лише кнопка OK
vbOKCancel1Відображаються кнопки OK і "Скасувати"
vbAbortRetryIgnore2Відображаються кнопки "Перервати", "Повторити" і "Пропустити"
vbYesNoCancel3Відображаються кнопки "Так", "Ні" і "Скасувати"
vbYesNo4Відображаються кнопки "Так" і "Ні"
vbRetryCancel5Відображаються кнопки "Повторити" і "Скасувати"
vbCritical16Можна бачити піктограму повідомлення про критичну помилку
vbQuestion32Значок попередження з запитом
vbExclamation48Значок попередження
vbInformation64Можна бачити піктограму інформаційного повідомлення
vbDefaultButton10Перша кнопка є кнопкою за замовчуванням
vbDefaultButton2256Друга кнопка є кнопкою за замовчуванням.
vbDefaultButton3516Третя кнопка є кнопкою за замовчуванням.
vbDefaultButton4768Четверта кнопка є кнопкою за замовчуванням.
vbApplicationModal0Додаток є модальним. Перед продовженням даної програми користувач повинен відповісти в вікні повідомлення
vbSystemModal4096Система є модальної. Всі додатки припиняються, поки користувач не відповість у вікні повідомлення
vbMsgBoxHelpButton16384Додає до діалогового вікна кнопку Довідка. При натисканні на цю кнопку відкривається файл, який заданий в аргументі HelpFile, в розділі, заданому аргументом Context
MsgBoxSetForeground65536Вказує, що вікно повідомлення відображається поверх інших вікон
MsgBoxRight524288Текст вирівнюється по правому краю
MsgBoxRtlReading1048576Вказує, що текст повинен виводитися справа наліво, аналогічно арабської і єврейської системам читання

Buttons повернення вибраної кнопки:

Функція MsgBox може повертати одне з наступних значень за допомогою яких ми зможемо ідентифікувати кнопку яку користувач натиснув у вікні повідомлення. Для цього достатньо пристроїти MsgBox певній змінній яка збереже вибраний варіант, наприклад:

x = MsgBox("Виберіть кнопку:", vbYesNo)

Примітка: При присвоєнні змінній функції MsgBox текст функції необхідно загорнути в дужки

в подальшому в залежності від вибору можна виконувати різні частини коду:

Натиснута кнопкаПовернене значенняОпис
vbOK1була натиснута OK
vbCancel2була натиснута Скасувати
vbAbort3була натиснута Перервати
vbRetry4була натиснута Повторити
vbIgnore5була натиснута Пропустити
vbYes6була натиснута Так
vbNo7була натиснута Ні

Приклади застосування

Приклад 1:

Виведемо користувачу повідомлення про помилку:

Sub example01()
	MsgBox "Текст нашого повідомлення про помилку", vbAbortRetryIgnore + vbCritical, "Помилка"
End Sub

Приклад 2:

Виведемо користувачу повідомлення про помилку і обробимо вибрану кнопку:

Sub example01()
	Dim ErrorMsg As Integer
		ErrorMsg = MsgBox("Текст нашого повідомлення про помилку", vbAbortRetryIgnore + vbCritical, "Помилка")
		If ErrorMsg = 3 Then
			MsgBox "Програму буде завершено!", vbInformation, "Кінець"
			Exit Sub
		End If
End Sub 

при натисканні кнопки Перервати програма завершується з виводом відповідного повідомлення


Popup

Закриття вікна через певний час

Функція Popup по функціональності однакова з функцією MsgBox, але в неї є одна перевага яку й розглянемо нижче.

Іноді (наприклад, при пакетній обробці даних) хотілося б, щоб вікно повідомлення через деякий час закривалося само собою. Це можна зробити за допомогою методу Popup об'єкта Wscript.Shell. Для цього в проект через меню References потрібно додати посилання на Windows Script Host Object Model (файл C: WINNT system32 wshom.ocx), а після цього використовувати наступний код:

Dim oShell As New WshShell
	oShell.Popup Prompt [, Timeout] [, Title] [, Buttons]

Timeout - Не обов'язково. Параметр який визначає тривалість життя повідомлення, вимірюється в секундах

Код повернення, якщо користувач не натиснув ні на яку кнопку, дорівнює -1.


Приклади застосування

Виведемо користувачу повідомлення про помилку і закриємо його через 10 секунд:

Sub example01()
	Dim oShell As New WshShell
		oShell.Popup "Текст нашого повідомлення про помилку", 10, "Помилка", vbAbortRetryIgnore + vbCritical
	End Sub 

view571like0dislike0 avatard_l4w clock 2016-04-30 10:16

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com