Vba excel перенос строки в msgbox
Вместо функции Chr() можно использовать специальные константы:
- vbCr — вставляет символ \r ; эквивалентно Chr(13) ;
- vbLf — вставляет символ \n ; эквивалентно Chr(10) ;
- vbCrLf — вставляет последовательность символов \r\n ; эквивалентно Chr(13) & Chr(10) ;
- vbNewLine — эквивалентно Chr(13) & Chr(10) или в Macintosh Chr(13) ;
- vbTab — вставляет символ табуляции; эквивалентно Chr(9) .
Необязательный параметр указывает какие кнопки должны отображаться в диалоговом окне, задает стиль иконки и др. свойства окна. В качестве значения можно указать следующие константы (или их комбинацию):
- vbQuestion — 32 — задает вывод иконки для запроса подтверждения каких-либо действий (синий вопросительный знак внутри белого круга). Пример вывода иконки:
- vbDefaultButton1 — 0 — первая кнопка выбрана по умолчанию (значение по умолчанию). Пример:
- vbDefaultButton2 — 256 — вторая кнопка выбрана по умолчанию. Пример:
- vbDefaultButton3 — 512 — третья кнопка выбрана по умолчанию. Пример:
- vbDefaultButton4 — 768 — четвертая кнопка выбрана по умолчанию;
- vbApplicationModal — 0 — окно будет модальным в пределах приложения (значение по умолчанию). Прежде чем продолжить работу с приложением окно необходимо закрыть нажатием на одну из кнопок. Пример:
- vbSystemModal — 4096 — окно будет отображаться поверх всех других окон в системе. Прежде чем продолжить работу с приложением окно необходимо закрыть нажатием на одну из кнопок. Пример:
- vbMsgBoxHelpButton — 16384 — добавляет в окно кнопку Справка. Пример:
Параметр в функции MsgBox() задает текст, который будет отображен в заголовке окна. Если параметр не указан, то выводится имя приложения. Пример:
Необязательный параметр задает имя справочного файла, а параметр — номер раздела в справочном файле. Эти параметры должны указываться одновременно.
После вывода окна пользователь должен нажать одну из кнопок. Благодаря тому, что функция MsgBox() возвращает значение, внутри программы можно определить какую именно кнопку нажал пользователь. Функция возвращает одно из следующих значений:
- vbOK — 1 — нажата кнопка OK;
- vbCancel — 2 — нажата кнопка Отмена или кнопка Закрыть в заголовке окна;
- vbAbort — 3 — нажата кнопка Прервать;
- vbRetry — 4 — нажата кнопка Повтор;
- vbIgnore — 5 — нажата кнопка Пропустить;
- vbYes — 6 — нажата кнопка Да;
- vbNo — 7 — нажата кнопка Нет.
Для примера выполним проверку двумя способами. Первый способ заключается в использовании оператора ветвления If (листинг 1.6), а второй способ — в использовании оператора выбора Select (листинг 1.7).
Листинг 1.6. Проверка нажатой кнопки с помощью оператора If
Листинг 1.7. Проверка нажатой кнопки с помощью оператора Select
Диалоговое окно для ввода данных
Окно для ввода данных реализуется с помощью функции InputBox() . Формат функции:
Необязательный параметр задает текст, который будет отображен в заголовке окна. Если параметр не указан, то выводится имя приложения. В необязательном параметре можно указать значение, которое отобразится в текстовом поле. Пример:
В необязательных параметрах и можно указать координаты вывода окна на экране относительно левого верхнего угла. Положительная ось X направлена вправо, а положительная ось Y — вниз. Если параметры не указаны, то окно выводится по центру.
Необязательный параметр задает имя справочного файла, а параметр — номер раздела в справочном файле. Эти параметры должны указываться одновременно.
Функция возвращает текст, введенный пользователем в текстовое поле. Если пользователь нажал кнопку Отмена или кнопку Закрыть в заголовке окна, то функция вернет пустую строку.
Переделаем нашу первую программу так, чтобы она здоровалась не со всем миром, а только с нами (листинг 1.8).
Листинг 1.8. Пример использования функции InputBox()
Статьи по Visual Basic for Applications (VBA)
Помощь сайту
Yandex-деньги: 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
Хотите создавать решения, которые расширяют возможности 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 и обратная связь.
Начиная практиковаться в написании кода VBA, очень важно с самого начала выработать хорошие привычки в оформлении кода, чтобы в дальнейшем написанный код было легко читать и понимать, как он работает.
В процессе написания кода, программист может иметь совершенно чёткое представление о том, что за код он пишет и как этот код должен работать. Но нужно позаботиться и о том, чтобы, вернувшись к работе спустя полгода, не пришлось ломать голову, пытаясь понять, что должен делать этот код. Ещё более неприятная ситуация – когда кто-то другой станет продолжать Вашу работу над кодом и не сможет понять, как он работает.
Эта статья посвящена комментариям, отступам в коде и переносам строк – элементам, которые делают код аккуратным и понятным.
Комментарии в VBA
Самое важное для написания аккуратного и понятного кода – чаще оставлять комментарии. Комментарии – это строки в коде, которые исполняют роль заметок и помогают разобраться, какие действия выполняет та или иная часть кода.
Комментарии не участвуют в процессе выполнения программы и не влияют на результат работы макроса. Каждая строка, начинающаяся апострофом (‘), будет считаться в VBA комментарием. Редактор VBA в Excel выделит такую строку зелёным цветом шрифта, чтобы с первого взгляда было понятно, что это комментарий, который не будет выполняться.
Ниже продемонстрировано, как при помощи комментариев поясняется работа простой процедуры Sub:
Не расстраивайтесь, если какую-то часть кода, показанного выше, не удалось понять – далее в учебнике мы рассмотрим эту тему подробнее. Цель приведённого примера – продемонстрировать, как при помощи комментариев поясняется каждый блок кода.
Часто программисты ленятся добавлять подробные комментарии к своему коду, но, поверьте, затраченные усилия оправдают себя с избытком! Несколько минут, потраченных на написание понятного комментария, могут сэкономить Вам долгие часы в будущем.
Отступы в коде VBA
Другой приём, делающий написанный код более читаемым – правильно расставлять отступы. В приведённом выше примере видно, что отступ сделан для кода внутри главной процедуры Sub и далее отступ увеличивается для каждого вложенного блока кода. Такие увеличенные отступы помогают понять, где каждый отдельный блок кода начинается и заканчивается.
Переносы строк в VBA
Ещё один способ сделать код более читаемым и облегчить работу с ним – делать переносы и разбивать одну длинную строку кода на несколько коротких. В VBA, чтобы разбить строку, нужно вставить символы » _» (пробел+подчёркивание) непосредственно перед переносом строки. Это сообщает компилятору VBA, что текущая строка кода продолжается на следующей строке.
Следующий пример демонстрирует, как при помощи переносов строк можно сделать длинные строки кода гораздо более понятными и легко читаемыми.
Посмотрите на этот оператор If:
При помощи переносов строк тот же оператор If может быть записан вот так:
Если рассмотренный оператор If разбит на четыре строки, то составляющие его блоки c условиями видны гораздо более наглядно. Этот пример иллюстрирует, как аккуратное оформление может сделать код более читаемым и привести в результате к меньшему количеству ошибок и путаницы.
Sub MergeToOneCell()
Const sDELIM As String = " " 'символ-разделитель
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub 'если выделены не ячейки - выходим
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text 'собираем текст из ячеек
Next rCell
Application.DisplayAlerts = False 'отключаем стандартное предупреждение о потере текста
.Merge Across:=False 'объединяем ячейки
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) 'добавляем к объед.ячейке суммарный текст
End With
End Sub
[/vba]
А как сделать чтобы место пробела в строке
Const sDELIM As String = " " 'символ-разделитель
вставлялся символ переноса строки?
Sub MergeToOneCell()
Const sDELIM As String = " " 'символ-разделитель
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub 'если выделены не ячейки - выходим
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text 'собираем текст из ячеек
Next rCell
Application.DisplayAlerts = False 'отключаем стандартное предупреждение о потере текста
.Merge Across:=False 'объединяем ячейки
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) 'добавляем к объед.ячейке суммарный текст
End With
End Sub
[/vba]
А как сделать чтобы место пробела в строке
Const sDELIM As String = " " 'символ-разделитель
вставлялся символ переноса строки? Символ переноса в VBA
Sub MergeToOneCell()
Const sDELIM As String = " " 'символ-разделитель
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub 'если выделены не ячейки - выходим
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text 'собираем текст из ячеек
Next rCell
Application.DisplayAlerts = False 'отключаем стандартное предупреждение о потере текста
.Merge Across:=False 'объединяем ячейки
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) 'добавляем к объед.ячейке суммарный текст
End With
End Sub
[/vba]
А как сделать чтобы место пробела в строке
Const sDELIM As String = " " 'символ-разделитель
вставлялся символ переноса строки? Автор - Символ переноса в VBA
Дата добавления - 29.05.2013 в 16:12
К настоящему моменту мы использовали окно MsgBox, чтобы выводить информацию на экран.
В этом случае MsgBox вызывается только с одним аргументом. См. код ниже:
Сейчас мы создадим диалоговое окно, которое будет просить подтверждение для удаления, прежде чем две инструкции будут выполнены. Далее есть три аргумента, которые мы будем использовать: Text: текст диалогового окна Buttons: выбор кнопок (yes, no, cancel и т.п.) + другие опции Title: заголовок диалогового окна
vbYesNo отмечает, что кнопками диалогового окна являются "Yes" и "No", а vbYes представляет кнопку "Yes":
Варианты использования второго аргумента в MsgBox
Constant | Numerical Value | Description |
vbOKOnly | 0 | |
vbOKCancel | 1 | |
vbAbortRetryIgnore | 2 | |
vbYesNoCancel | 3 | |
vbYesNo | 4 | |
vbRetryCancel | 5 |
vbCritical | 16 | |
vbQuestion | 32 | |
vbExclamation | 48 | |
vbInformation | 64 |
Здесь пример MsgBox, который будет продолжать отображаться каждый раз при цикле, пока пользователь будет жать Yes:
Варианты использования второго аргумента в MsgBox
Для отображения новой ленты вы можете использовать функцию Chr с аргументом 10, которая отвечает за перенос строки, например:
получим следующий результат:
InputBox
InputBox запрашивает пользователя ввести значение в диалоговое окно, например:
Получим следующий результат:
Третий аргумент может быть использован для установки значения по умолчанию:
Читайте также: