Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel inputbox примеры

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

Использование функции InputBox в VBA Excel, ее синтаксис и параметры. Значения, возвращаемые функцией InputBox. Примеры использования.

Функция InputBox предназначена в VBA Excel для вывода диалогового окна с приглашением ввести текст и возвращения введенного значения типа String с содержимым текстового поля.

Синтаксис функции

InputBox ( Prompt [, Title ] [, DefaultResponse ] [, X ] [, Y ])

Обязательным параметром функции InputBox является Prompt, если значения остальных параметров явно не указаны, используются их значения по умолчанию.

Параметры функции

ПараметрОписаниеЗначение
по умолчанию
PromptОбязательный параметр. Выражение типа String, отображаемое в диалоговом окне в виде сообщения, приглашающего ввести текст в текстовое поле. Разделить на строки сообщение можно с помощью константы vbNewLine.Нет
TitleНеобязательный параметр. Выражение типа String, отображаемое в заголовке диалогового окна.Имя приложения*
DefaultResponseНеобязательный параметр. Выражение типа String, отображаемое в текстовом поле при открытии диалога.Пустая строка
XНеобязательный параметр. Числовое выражение, определяющее в твипах** расстояние от левого края экрана до левого края диалогового окна.Горизонтальное выравнивание по центру
YНеобязательный параметр. Числовое выражение, определяющее в твипах** расстояние от верхнего края экрана до верхнего края диалогового окна.Приблизительно равно 1/3 высоты экрана

*В Excel по умолчанию в заголовке диалогового окна InputBox выводится строка: «Microsoft Excel».

**Твип (англ. twip) — типографская единица измерения, равная одной двадцатой пункта (point, отсюда и название: Twentieth of a Point). Твип равен 1/1440 дюйма (точно) или 1/567 сантиметра (приближенно).

Если X и Y задать равными нулю, диалоговое окно InputBox отобразится в левом верхнем углу экрана.

Возвращаемые значения

КнопкаВозвращаемое значение
OKЗначение типа String с содержимым текстового поля
CancelПустая строка

Примеры

Пример 1
Ознакомьтесь с работой функции InputBox на простом примере, написав в текстовом поле сообщение и закрывая диалоговое окно кнопками OK, Cancel и крестиком в правом верхнем углу:

VBA InputBox

Excel VBA InputBox

Though most of the times you use the data which is already with you, sometimes you come up with a situation where you want the user to input the data like Name, Age, etc. kind of personal information. These kinds of input information are needed sometimes when we are conducting a survey and need to review the unbiased opinion of people.

Using Excel VBA’s InputBox, we can get the input data from the user. As the name suggests, InputBox works as a pop-up box which asks the user to feed certain information.

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more

Syntax for VBA InputBox

Following is the syntax for VBA InputBox:

  • Prompt – Message that gets displayed to the user. This is the only required argument, rest other arguments are optional.
  • Title – It is the heading that appears on the dialog window after the successful execution of InputBox statement. If not given, by default system prints ‘Microsoft Excel’ as a title.
  • Default – It is the default value that comes on the dialog box. We can keep it null as well. No default value set for this argument.
  • XPos – Position coordinate of a dialog box on X-axis.
  • YPos – Position coordinate of a dialog box on Y-axis.
  • HelpFile – Location of the help file that should be used. This argument becomes mandatory to set when the ‘Context’ argument is passed.
  • Context – Represents Help ContextId for the HelpFile used. Mandatory to use when ‘HelpFile’ argument is passed.
  • Out of all these arguments, only the first three are enough to successfully create an InputBox.

Creating InputBox in Excel VBA

Below are the different steps to create InputBox in Excel using VBA Code.

  • Open VBE (Visual Basic Editor by pressing Alt + F11 simultaneously in an Excel file and click on Insert and add a new Module in VBE.

  • Create a macro in this module named ‘Module1’. Assign a name to the macro.

  • Type command InputBox in the editor.

Give the following inputs to the InputBox statement:

  • Prompt: “May I Know Your Full Name?”
  • Title: “Personal Information”
  • Default: “Start Typing Here

Code:

  • Press F5 or run button to run this code.

How to Store the Output of InputBox to Cells?

You have created the InputBox to get the input from the user. However, where the output will get stored? We haven’t mentioned any location where the output can be stored.

Читать еще:  Макросы excel if then

Let’s store the output we get from InputBox to excel cells by following below steps in VBA:

  • Declare a new variable ‘Name’ with type as ‘Variant’. This type of variable can take any value (numeric/string/logical etc.).

Code:

  • Use InputBox to assign value to this variable called ‘Name’.

Code:

If you could have noticed the parenthesis after InputBox statement, those are needed because we are using this statement for a variable ‘Name’. As soon as it becomes a value to be given for a variable, it has to be mentioned in a proper format with parenthesis.

  • Now whatever value the user has typed in the dialog box, we want that to see in cell A1 of Excel sheet. Put the following statement for the same in VBE: Range(“A1”).Value = Name.

Code:

This is it, now let’s run this code and see how it works.

  • Click on Run button or press F5 to run this code, you’ll get following dialog box. Write your name in the dialog box popped up with the name “Personal Information” and hit OK to see where the output gets printed.

  • As soon as you input the value and click on OK, you can see the value inputted in cell A1. See the screenshot below.

Any value can be stored using InputBox if the variable is properly defined. In this case, you have defined the variable ‘Name’ as ‘Variant’. The variant data type can take any data value as I said earlier.

See the example below:

I am giving a number as an argument to dialog box when pops up. See as below:

Click on OK, see the output below:

The value in cell A1 is changed to 2019.

Code:

Run the code and try to input the value other than the date. I will enter my name itself and click OK.

  • After clicking OK, a run time error message saying, ‘Type mismatch’.

It occurred because the type of variable name is Date now and I have given input argument other than date value (a string name). Due to which this code doesn’t execute and throws an error.

Validation of User Input

What if I tell you that the user input can be restricted? Yes, It’s true! You can restrict the user input to Characters, Numbers or Logical, etc.

To restrict the user input, you can use Application.InputBox.

Syntax for Application.InputBox is as follows:

Prompt – Message that gets popped up for the user.

Title – Heading of the dialog box.

Default – Default value that pops up on typing area under dialog box.

Type – The type of input.

These are the only important arguments which are enough to run this statement.

Let’s start this through example.

  • Declare a variable Name as Variant.

Code:

Assign Application.InputBox to the variable called Name with the same arguments as those you have used InputBox. i.e. Prompt, Title and Default. See the code below:

Code:

Now, put comma 5 times to ignore the Left, Top, HelpFile and HelpContextID. After 5 commas, you can specify the input type.

Code:

Type of the input string have below mentioned validations:

  • Let’s choose 1 as a Type in our statement. It means only Numbers/Numeric Values are acceptable in the dialog box which pops up.

Code:

  • Run the code manually or using the F5 key and give name as an input in the typing area as shown below. Then click OK and see the Output.

It says, the number is not valid. That seems logical because we have set the variable input type as the number and providing the text as an input which is not acceptable by the system.

In this way, you can restrict the user to enter only the values which you want to see through InputBox.

Things to Remember

  • InputBox accepts up to 255 arguments and can display only 254. So be cautious about the max length a user can enter.
  • Application method can be used to set the input data type. However, if it is not used, then you need to be more specific about the input data type.
  • A variant data type is recommended to choose as it can hold any of Numeric/Text/Logical etc. B=Values.
Читать еще:  Excel выход из цикла for

Recommended Articles

This has been a guide to VBA InputBox. Here we discussed how to create InputBox in Excel using VBA code along with practical examples and downloadable excel template. You can also go through our other suggested articles –

Vba excel inputbox примеры

Отображает окно ввода, выдающее запрос пользователю на ввод строки.

InputBox ( «title» , «prompt» [, «default» [, «password char» [, width = — 1 [, height = — 1 [, left = Default [, top = Default [, timeout = 0 [, hwnd ]]]]]]]] )

titleЗаголовок окна ввода.
promptСообщение пользователю, объясняющее, что ему необходимо ввести.
default[необязательный] Значение, которое будет отображено в строке ввода при появлении окна ввода.
password char[необязательный] Символ, на который будут заменяться все вводимые символы. Если необходимо, чтобы отображались именно вводимые символы, передайте в качестве параметра пустую строку («») (по умолчанию) или пробел в качестве первого символа. Если будет передана строка с несколькими символами, только первый символ будет использован для «маскировки» ввода. Второй и последующий символы строки имеют специальное значение. См. примечания.
width[необязательный] Ширина окна (по умолчанию -1).
height[необязательный] Высота окна (по умолчанию -1).
left[необязательный] Координата левого края окна (по умолчанию Default , чтобы центрировать окно).
top[необязательный] Координата верхнего края окна (по умолчанию Default , чтобы центрировать окно).
timeout[необязательный] Время ожидания (в секундах), по истечении которого InputBox будет автоматически закрыт (по умолчанию 0, что означает, что время отображения не ограничено).
hwnd[необязательный] Дескриптор родительского окна. Предотвращает доступ к родительскому окну, пока существует InputBox.
Успех:Возвращает введённую строку.
Ошибка:Возвращает «» (пустую строку) и устанавливает значение @error равным:
@error0 = введённая строка допустима.
1 = нажата кнопка отмена (Cancel).
2 = время ожидания истекло.
3 = ошибка открытия окна ввода. Обычно причиной являются неправильные параметры.
4 = окно ввода не может быть отображёно ни на одном из мониторов.
5 = неправильно переданы параметры (width без height или left без top).

Размер окна ввода может быть изменён пользователем, но имеет минимальные размеры 190 x 115 пикселей . По умолчанию, размер окна равен 250 x 190 пикселей .

Длина возвращаемой строки не превышает 254 символа и, если введённая строка содержит символы возврата каретки или перевода строки, результат будет обрезан до первого появления этих символов.

Второй и последующий символы параметра password предназначены для ограничения пользовательского ввода. Используйте пробел в качестве первого символа, чтобы вводимые символы по-прежнему отображались. Использование символа M (англ.) в качестве второго символа параметра указывает что ввод какого-либо значения принудителен (англ. Mandatory). Ничего не случится при нажатии кнопки Ok, если в строке ввода нет какого-либо значения. В этом случае окно не будет закрыто.

Можно также указать максимальную длину строки ввода. Для этого служат последние символы параметра password (см. пример).

; Этот пример содержит параметры по умолчанию.
; $answer = InputBox(«Заголовок», «Пояснение», «Текст поля ввода», «», -1, -1, Default, Default, 0)

; Диалоговое окно появится в левом верхнем углу, отображая вводимые символы как есть.
$answer = InputBox ( «Вопрос» , «Где вы родились?» , «Планета Земля» , «» , — 1 , — 1 , 0 , 0 )

; Просит пользователя ввести пароль, вместо символов отображаются звёздочки. Не забудьте проверить это!
$passwd = InputBox ( «Проверка безопасности» , «Введите пароль.» , «» , «*» )

; Просит пользователя ввести 1 или 2 символа в поле ввода. Символ M в параметре пароля, означает, что пустая строка не принимаются и при нажатии OK ничего не произойдёт; символ 2 означает, что невозможно ввести более 2-х символов.
$value = InputBox ( «Тестирование» , «Введите 1 или 2 символа.» , «» , » M2″ )

VBA InputBox – How to Use

In earlier post we have talked about MsgBox which is exactly opposite to VBA InputBox. The job of InputBox function in VBA is to get some input from the user. It displays a dialog to the user that gives him a cue of which value should be entered, then it returns this value to the program.

Syntax of InputBox in VBA:

Its syntax is as follows:

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

Читать еще:  Функция mid в excel

‘prompt’ refers to the message that is displayed to the user.

‘title’ is an optional argument. It refers to the heading on the input dialog window. If it is omitted then a default title “Microsoft Excel” is shown.

‘default’ it is an optional argument. It refers to the value that will appear in the textbox when the InputBox is initially displayed. If this argument is omitted, the textbox is left empty.

‘xpos’ is an optional argument. It refers to the positional coordinate of the input dialog window on X-axis.

‘ypos’ is also an optional argument. It refers to the positional coordinate of the input dialog window on Y-axis.

‘helpfile’ it is the location of help file that should be used with the InputBox. This is an optional parameter but it becomes a mandatory argument when ‘context’ argument is passed.

‘context’ represents the HelpContextId in the referenced ‘helpfile’. It is an optional parameter but it becomes a mandatory argument when ‘helpfile’ argument is passed.

Few important things about VBA InputBox:

  • This function needs proper error handling. If the user clicks the cancel button without entering any value then it results into an error.
  • InputBox can only accept up to 255 characters but can return only 254. So, always be cautious about the max length of a value that user can enter.
  • Unlike MsgBox, InputBox should always have a variable to which it can return the results.
  • Another problem with this function is that sometimes user may enter something that is not expected at all. For instance if you are asking user for some integer and user enters some string in such a case your code will break. So, its programmer’s responsibility to handle such issues.

Examples of Input Box:

Now let’s move on to some practical examples:

Example 1: Simple code illustrating the use of InputBox function.

Example 2: Sample code to use InputBox Function along with decision making statements like IF Statement or Select Case Statement.

Here in this code we have asked user to enter a number and then we check the reminder after dividing the number by 2. If the reminder is 1 then the number is odd otherwise if the reminder is 0 then the number is even.

Example 3: Making the code immune to errors caused when user clicks the cancel button on InputBox.

As I have foretold that when user clicks the ‘Cancel’ button present on the input dialog window then it returns an empty string. This empty string can result into breaking of code, so it is always a good idea to check the length of the string returned by the function. If the length is 0 then you can assume that user must have clicked the cancel button and hence proceed accordingly.

In the below code I have asked user to enter his name. If the user clicks the cancel button then a message box with a warning is shown otherwise he is greeted.

Example 4: Making the code immune to mismatched datatypes.

Mismatched datatypes is another problem that you may have to deal while using VBA InputBox function. This problem can come into picture when user enters some value that you are not expecting. This problem has no fool proof solution but at-least you can stop the code from terminating unexpectedly by using On Error Statement.

Below I have used the same code that we used for Example 2. But here I have made this code more error resistant by adding “On Error GoTo NotValidInput” statement this ensures that whenever any exception is caused then code should terminate gracefully.

So, this was all about VBA Input Box function. Do let us know your thoughts related to this function.

Ankit is the founder of Excel Trick. He is tech Geek who loves to sit in front of his square headed girlfriend (his PC) all day long. :D. Ankit has a strong passion for learning Microsoft Excel. His only aim is to turn you guys into ‘Excel Geeks’.

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