Deze zelfstudie laat zien hoe u invoer van een gebruiker kunt krijgen met de VBA-invoerbox.
De VBA-invoervak stelt ons in staat om de gebruiker te vragen informatie in te voeren. De informatie kan vervolgens worden gebruikt in onze VBA-code of in een Excel-werkblad.
Het VBA-invoervak met een variabele
We kunnen een variabele declareren in onze VBA-code die vervolgens de informatie opslaat die in de Input Box is getypt. We kunnen deze variabele dan gebruiken in onze code.
Afhankelijk van het type informatie dat we uit het invoervak willen retourneren, kunnen we een specifiek type variabele declareren om ofwel tekst te retourneren (een string of variantvariabele) of om een getal te retourneren (een geheel getal, lange, dubbele of enkele variabele).
De stringvariabele met een invoervak
Hier ziet u hoe u een InputBox kunt maken waarin de gegevens worden geretourneerd in een tekenreeksvariabele.
123 | Dim strInvoer als tekenreeksstrInput = InputBox ("Dit is mijn InputBox", "MyInputTitle", "Voer HIER uw invoertekst in") |
Merk op dat we eerst een variabele declareren. Aan deze variabele wordt de waarde toegewezen die de gebruiker invoert. We hebben string van het variabele type gebruikt om ervoor te zorgen dat het invoervak tekstreeksen accepteert (die alfanumerieke tekens bevatten).
De nummervariabele met een invoervak
Als u een getalvariabele declareert, hoeft u alleen een getal in het invoervak in te voeren.
12 | Dim iInput als geheel getaliInput = InputBox ("Voer een nummer in", "Maak factuurnummer", 1) |
Eerst declareren we de getalvariabele als een integer-variabele. We kunnen dan ook een standaardwaarde van 1 in het invoerveld zetten.
Als we een string zouden invoeren in plaats van een getal en dan op OK zouden klikken, zouden we een Type Mismatch Error krijgen omdat een getalvariabele geen string accepteert.
Input krijgen van een gebruiker
Hier is nog een voorbeeld waarin de meest populaire functies van een InputBox worden gebruikt.
De volgende code doet drie dingen:
1. Vraagt om invoer met een InputBox en wijst deze toe aan een variabele
2. Controleert invoer, anders verlaat de sub
3. Retourneert de invoer in een berichtvenster
12345678910111213 | Openbare sub MijnInputBox()Dim MyInput als stringMyInput = InputBox ("Dit is mijn InputBox", "MyInputTitle", "Voer HIER uw invoertekst in")If MyInput = "Voer uw invoertekst HIER in" Of MyInput = "" DanSluit subStop alsMsgBox "De tekst van MyInputBox is " & MyInputEinde sub |
De invoer terugsturen naar een Excel-blad
U kunt de invoer die u in een invoervak typt, retourneren in een specifieke cel in uw Excel-blad.
1 | Range("P1") = InputBox("Voer uw naam in", "Voer naam in", "Voer HIER naam in") |
We kunnen ook invoergegevens retourneren naar een Excel-blad met behulp van een variabele.
12345678910 | Subnummer invoeren()Bij fout Hervatten volgendeDim dbl Bedrag als dubbeldblAmount = InputBox ("Vul het vereiste bedrag in", "Voer Bedrag in")Als dblAmount 0 DanBereik ("A1") = dblAmountAndersMsgBox "Je hebt geen nummer ingevuld!"Stop alsEinde sub |
In het bovenstaande voorbeeld zijn we verplicht een getal in te voeren. Als we een getal invoeren, dan is de variabele dblBedrag zal het nummer in het Excel-blad in cel A1 plaatsen. Als we echter geen nummer invoeren, zal een berichtvenster ons vertellen dat we geen nummer hebben ingevoerd en wordt er niets in cel A1 geplaatst.
VBA InputBox gebruiken in Access VBA
Het VBA-invoervak werkt in Access op precies dezelfde manier als in Excel bij het retourneren van gebruikersinvoer in de vorm van een berichtvenster.
Als u echter de gebruikersinvoer naar de database wilt terugsturen, moet u het Recordset-object gebruiken in plaats van het Range-object zoals dat in Excel wordt gebruikt.
1234567891011121314 | Sub Voer Factuurnummer in()Dim dbs als databaseDim eerst als recordsetStel dbs = CurrentDb inStel rst = dbs.OpenRecordset("tblMatters", dbOpenDynaset)Met eerst.ToevoegenNieuw!InvNo = InputBox("Voer het factuurnummer in", "FACTUURNUMMER GENERATIE", 1).UpdateEindigt meteerst.SluitenStel eerst = Niets inStel dbs = Niets inEinde sub |