Excel VBA InputBox

Hoewel je meestal de gegevens gebruikt die al bij je zijn, kom je soms in een situatie waarbij je wilt dat de gebruiker de gegevens invoert, zoals Naam, Leeftijd, enz. Persoonlijke informatie. Dit soort invoerinformatie is soms nodig wanneer we een onderzoek uitvoeren en de onpartijdige mening van mensen moeten beoordelen.

Met behulp van de InputBox van Excel VBA kunnen we de invoergegevens van de gebruiker krijgen. Zoals de naam al doet vermoeden, werkt InputBox als een pop-upvenster waarin de gebruiker wordt gevraagd bepaalde informatie in te voeren.

Syntaxis voor VBA InputBox

Hierna volgt de syntaxis voor VBA InputBox:

Waar,

  • Prompt - bericht dat aan de gebruiker wordt getoond. Dit is het enige vereiste argument, andere argumenten zijn optioneel.
  • Titel - Het is de kop die in het dialoogvenster verschijnt na de succesvolle uitvoering van de InputBox-instructie. Indien niet gegeven, drukt het systeem standaard 'Microsoft Excel' af als een titel.
  • Standaard - dit is de standaardwaarde die in het dialoogvenster wordt weergegeven. We kunnen het ook nul houden. Geen standaardwaarde ingesteld voor dit argument.
  • XPos - Positiecoördinaat van een dialoogvenster op de X-as.
  • YPos - Positiecoördinaat van een dialoogvenster op de Y-as.
  • Helpbestand - Locatie van het helpbestand dat moet worden gebruikt. Dit argument wordt verplicht in te stellen wanneer het argument 'Context' wordt doorgegeven.
  • Context - Vertegenwoordigt Help ContextId voor het gebruikte Help-bestand. Verplicht te gebruiken wanneer het 'HelpFile'-argument wordt doorgegeven.
  • Van al deze argumenten zijn alleen de eerste drie voldoende om met succes een InputBox te maken.

InputBox maken in Excel VBA

Hieronder staan ​​de verschillende stappen om InputBox in Excel te maken met behulp van VBA-code.

U kunt deze VBA InputBox Excel-sjabloon hier downloaden - VBA InputBox Excel-sjabloon
  • Open VBE (Visual Basic Editor door gelijktijdig op Alt + F11 te drukken in een Excel-bestand en klik op Invoegen en voeg een nieuwe module toe in VBE.

  • Maak een macro in deze module met de naam 'Module1'. Wijs een naam toe aan de macro.

  • Typ opdracht InputBox in de editor.

Geef de volgende invoer voor de InputBox-instructie:

  • Prompt: "Mag ik uw volledige naam weten?"
  • Titel: "Persoonlijke informatie"
  • Standaard: “Begin hier met typen

Code:

 Sub InputBoxEX () InputBox "Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen" Einde Sub 

  • Druk op F5 of op de knop Uitvoeren om deze code uit te voeren.

Hoe de uitvoer van InputBox in cellen op te slaan?

U hebt de InputBox gemaakt om de invoer van de gebruiker te krijgen. Waar wordt de uitvoer echter opgeslagen? We hebben geen locatie genoemd waar de uitvoer kan worden opgeslagen.

Laten we de output die we van InputBox krijgen opslaan in cellen door de onderstaande stappen in VBA te volgen:

  • Verklaar een nieuwe variabele 'Naam' met type als 'Variant'. Dit type variabele kan elke waarde aannemen (numeriek / string / logisch enz.).

Code:

 Sub InputBoxEX () Dim naam als variant einde Sub 

  • Gebruik InputBox om waarde toe te wijzen aan deze variabele met de naam 'Naam'.

Code:

 Sub InputBoxEX () Dim-naam als variantnaam = InputBox ("Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen") End Sub 

Als u de haakjes na de InputBox-instructie zou hebben opgemerkt, zijn deze nodig omdat we deze instructie gebruiken voor een variabele 'Name'. Zodra het een waarde wordt die moet worden gegeven voor een variabele, moet het in een geschikt formaat met haakjes worden vermeld.

  • Welke waarde de gebruiker nu ook in het dialoogvenster heeft getypt, we willen dat die in cel A1 van het Excel-blad te zien is. Plaats de volgende instructie voor hetzelfde in VBE: Bereik ("A1"). Waarde = Naam.

Code:

 Sub InputBoxEX () Dimnaam als variantnaam = InputBox ("mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen") Bereik ("A1") Waarde = Naam Einde Sub 

Dit is het, laten we nu deze code uitvoeren en kijken hoe het werkt.

  • Klik op de knop Uitvoeren of druk op F5 om deze code uit te voeren, u krijgt het volgende dialoogvenster te zien. Schrijf uw naam in het dialoogvenster met de naam 'Persoonlijke informatie' en druk op OK om te zien waar de uitvoer wordt afgedrukt.

  • Zodra u de waarde invoert en op OK klikt, ziet u de waarde ingevoerd in cel A1. Zie onderstaande screenshot.

Elke waarde kan worden opgeslagen met InputBox als de variabele correct is gedefinieerd. In dit geval hebt u de variabele 'Naam' gedefinieerd als 'Variant'. Het variantgegevenstype kan elke gegevenswaarde aannemen, zoals ik eerder zei.

Zie onderstaand voorbeeld:

Ik geef een nummer als argument voor het dialoogvenster wanneer dit verschijnt. Zie hieronder:

Klik op OK, zie de onderstaande output:

De waarde in cel A1 is gewijzigd in 2019.

Laten we nu het variabele type wijzigen in Datum.

Code:

 Sub InputBoxEX () Dim Naam als Datum Naam = InputBox ("Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen") Bereik ("A1"). Waarde = Naam Einde Sub 

Voer de code uit en probeer een andere waarde dan de datum in te voeren. Ik voer mijn naam zelf in en klik op OK.

  • Nadat u op OK hebt geklikt, verschijnt een foutbericht met de runtime: 'Type komt niet overeen'.

Het gebeurde omdat het type variabelenaam nu Date is en ik een ander invoerargument dan date value heb gegeven (een tekenreeksnaam). Hierdoor wordt deze code niet uitgevoerd en wordt er een fout gegenereerd.

Validatie van gebruikersinvoer

Wat als ik u vertel dat de gebruikersinvoer kan worden beperkt? Ja het is waar! U kunt de invoer van de gebruiker beperken tot tekens, cijfers of logisch, enz.

U kunt Application.InputBox gebruiken om de gebruikersinvoer te beperken.

Syntaxis voor Application.InputBox is als volgt:

Waar,

Prompt - bericht dat wordt weergegeven voor de gebruiker.

Titel - Titel van het dialoogvenster.

Standaard - Standaardwaarde die verschijnt in het typegebied onder het dialoogvenster.

Type - Het type invoer.

Dit zijn de enige belangrijke argumenten die voldoende zijn om deze verklaring uit te voeren.

Laten we dit door middel van een voorbeeld beginnen.

  • Declareer de naam van een variabele als variant.

Code:

 Sub InputBoxEX () Dim naam als variant einde Sub 

Wijs Application.InputBox toe aan de variabele Name met dezelfde argumenten als die u hebt gebruikt InputBox. dwz Prompt, Titel en Standaard. Zie onderstaande code:

Code:

 Sub InputBoxEX () Dim-naam als variantnaam = Application.InputBox ("Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen") End Sub 

Zet nu een komma 5 keer om de Left, Top, HelpFile en HelpContextID te negeren. Na 5 komma's kunt u het invoertype opgeven.

Code:

 Sub InputBoxEX () Dim naam als variantnaam = Application.InputBox ("Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen",,,,, End Sub 

Type van de invoertekenreeks heeft onderstaande validaties:

  • Laten we 1 als Type in onze verklaring kiezen. Dit betekent dat alleen getallen / numerieke waarden acceptabel zijn in het dialoogvenster dat verschijnt.

Code:

 Sub InputBoxEX () Dimnaam als variantnaam = Application.InputBox ("Mag ik uw naam weten?", "Persoonlijke informatie", "Begin hier te typen",,,,, 1) Einde Sub 

  • Voer de code handmatig uit of gebruik de F5-toets en geef naam als invoer in het typegebied zoals hieronder wordt weergegeven. Klik vervolgens op OK en bekijk de uitvoer.

Er staat dat het nummer niet geldig is. Dat lijkt logisch, omdat we het variabele invoertype als nummer hebben ingesteld en de tekst als invoer leveren die door het systeem niet acceptabel is.

Op deze manier kunt u de gebruiker beperken om alleen de waarden in te voeren die u via InputBox wilt zien.

Dingen om te onthouden

  • InputBox accepteert maximaal 255 argumenten en kan slechts 254 weergeven. Wees dus voorzichtig met de maximale lengte die een gebruiker kan invoeren.
  • De applicatiemethode kan worden gebruikt om het invoergegevenstype in te stellen. Als het echter niet wordt gebruikt, moet u specifieker zijn over het invoergegevenstype.
  • Een variabel gegevenstype wordt aanbevolen om te kiezen, omdat deze numeriek / tekst / logisch enz. Kan bevatten. B = Waarden.

Aanbevolen artikelen

Dit is een handleiding voor VBA InputBox geweest. Hier hebben we besproken hoe u InputBox in Excel kunt maken met behulp van VBA-code, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Hoe de FIND-functie in Excel te gebruiken
  2. VBA-functie maken in Excel
  3. Handleiding voor bereik in Excel
  4. Hoe de VBA VLOOKUP-functie te gebruiken?

Categorie: