La funció InputBox de VBA és útil per obtenir una única informació escrita per l'usuari a Excle 2016. Aquesta informació pot ser un valor, una cadena de text o fins i tot una adreça d'interval. Aquesta és una bona alternativa per desenvolupar un UserForm quan només necessiteu un valor.
Sintaxi d'InputBox
Aquí teniu una versió simplificada de la sintaxi de la funció InputBox:
InputBox(sol·licitud[, títol][, predeterminat])
La funció InputBox accepta els arguments enumerats aquí.
| Argumentació |
Què Afecta |
| Avís |
El text que es mostra al quadre d'entrada |
| Títol |
El text que es mostra a la barra de títol del quadre d'entrada
(opcional) |
| Per defecte |
El valor predeterminat per a l'entrada de l'usuari (opcional) |
Un exemple d'InputBox
Aquí teniu una declaració que mostra com podeu utilitzar la funció InputBox:
TheName = InputBox ("Com et dius?", "Salutacions")
Quan executeu aquesta instrucció VBA, Excel mostra aquest quadre de diàleg. Tingueu en compte que aquest exemple només utilitza els dos primers arguments i no proporciona un valor predeterminat. Quan l'usuari introdueix un valor i fa clic a D'acord, el codi assigna el valor a la variable TheName.

La funció InputBox mostra aquest quadre de diàleg.
L'exemple següent utilitza el tercer argument i proporciona un valor per defecte. El valor predeterminat és el nom d'usuari emmagatzemat per Excel (la propietat UserName de l'objecte Application).
Sub GetName()
Atenua el nom com a cadena
TheName = InputBox ("Com et dius?", _
"Salutacions", Application.UserName)
End Sub
L'InputBox sempre mostra un botó Cancel·la. Si l'usuari fa clic a Cancel·la, la funció InputBox retorna una cadena buida.
La funció InputBox de VBA sempre retorna una cadena, de manera que si necessiteu obtenir un valor, el vostre codi ha de fer una comprovació addicional. L'exemple següent utilitza la funció InputBox per obtenir un número. Utilitza la funció IsNumeric per comprovar si la cadena és un número. Si la cadena conté un número, tot està bé. Si l'entrada de l'usuari no es pot interpretar com un número, el codi mostra un quadre de missatge.
Sub AddSheets ()
Dim Prompt com a cadena
Dim subtítols com a cadena
Dim DefValue As Long
Dim NumSheets com a cadena
Sol·licitud = "Quants fulls voleu afegir?"
Subtítol = "Digues-me..."
DefValue = 1
NumSheets = InputBox (sol·licitud, subtítol, DefValue)
Si NumSheets = "" Aleshores surt del sub "Cancel·lat
Si IsNumeric(NumSheets) Aleshores
Si NumFulls > 0, llavors Sheets.Add Count:=NumFulls
Altrament
MsgBox "Número no vàlid"
Acaba si
End Sub
Consulteu el quadre de diàleg que produeix aquesta rutina.
![Com utilitzar la funció InputBox a Excel 2016 VBA]()
Un altre exemple d'ús de la funció InputBox.
Un altre tipus d'InputBox
La informació que es presenta aquí s'aplica a la funció InputBox de VBA. A Microsoft sembla que li encanta la confusió, de manera que també teniu accés al mètode InputBox , que és un mètode de l'objecte Application.
Un gran avantatge d'utilitzar el mètode Application InputBox és que el vostre codi pot demanar una selecció d'interval. L'usuari pot seleccionar l'interval al full de treball ressaltant les cel·les. Aquí teniu un exemple ràpid que demana a l'usuari que seleccioneu un interval:
Sub GetRange()
Dim Rng As Range
En cas d'error Reprèn Següent
Estableix Rng = Application.InputBox _
(prompt:="Especifiqueu un interval:", Tipus:=8)
Si Rng no és res, sortiu de Sub
MsgBox "Heu seleccionat l'interval " & Adreça
End Sub
Així es veu.
![Com utilitzar la funció InputBox a Excel 2016 VBA]()
Utilitzant el mètode Application InputBox per obtenir un interval.
En aquest exemple senzill, el codi indica a l'usuari l'adreça de l'interval que s'ha seleccionat. A la vida real, el vostre codi faria alguna cosa útil amb l'interval seleccionat. Una cosa bona d'aquest exemple és que Excel s'encarrega de la gestió d'errors. Si introduïu alguna cosa que no és un interval, Excel us ho informarà i us permetrà tornar-ho a provar.
El mètode Application.InputBox és similar a la funció InputBox de VBA, però també té algunes diferències. Consulteu el sistema d'ajuda per obtenir els detalls complets.