Inhoudsopgave:
Video: Formulier maken met Excel 2016 (1) 2024
De VBA InputBox-functie is handig voor het verkrijgen van een enkel stuk informatie dat door de gebruiker in Excle 2016 is getypt. Die informatie kan een waarde, een tekenreeks of zelfs een bereik zijn adres. Dit is een goed alternatief voor het ontwikkelen van een UserForm wanneer u slechts één waarde moet krijgen.
InputBox-syntaxis
Hier is een vereenvoudigde versie van de syntaxis van de InputBox-functie:
InputBox (prompt [titel] [standaard])
De InputBox-functie accepteert de hier vermelde argumenten.
Argument | Wat het beïnvloedt |
---|---|
Prompt | De tekst die wordt weergegeven in het invoervak |
Titel | De tekst die wordt weergegeven in de titelbalk van het invoervak
(optioneel) |
Standaard | De standaardwaarde voor de invoer van de gebruiker (optioneel) |
Een InputBox-voorbeeld
Hier is een instructie die laat zien hoe u de InputBox-functie kunt gebruiken:
TheName = InputBox ("Wat is uw naam?", "Greetings")
Wanneer u dit VBA-statement uitvoert, geeft Excel dit dialoogvenster weer. Merk op dat dit voorbeeld alleen de eerste twee argumenten gebruikt en geen standaardwaarde levert. Wanneer de gebruiker een waarde invoert en op OK klikt, wijst de code de waarde toe aan de variabele TheName.
Het volgende voorbeeld gebruikt het derde argument en biedt een standaardwaarde. De standaardwaarde is de gebruikersnaam die is opgeslagen door Excel (de eigenschap UserName van het object Application).
Sub GetName () Dim TheName As String TheName = InputBox ("Wat is uw naam?", _ "Greetings", Application. UserName) End Sub
De InputBox geeft altijd de knop Annuleren weer. Als de gebruiker op Annuleren klikt, retourneert de InputBox-functie een lege reeks.
De InputBox-functie van VBA retourneert altijd een tekenreeks, dus als u een waarde moet krijgen, moet uw code nog een extra controle uitvoeren. In het volgende voorbeeld wordt de InputBox-functie gebruikt om een nummer te krijgen. Het gebruikt de IsNumeric-functie om te controleren of de reeks een getal is. Als de string een getal bevat, is alles in orde. Als de invoer van de gebruiker niet als een nummer kan worden geïnterpreteerd, geeft de code een berichtvenster weer.
Sub AddSheets () Dim Prompt As String Dim Caption As String Dim DefValue As Long Dim NumSheets As String Prompt = "Hoeveel bladen wilt u toevoegen? "Caption =" Tell me … "DefValue = 1 NumSheets = InputBox (Prompt, Caption, DefValue) If NumSheets =" "Then Exit Sub & apos; Geannuleerd als IsNumeric (NumSheets) dan If NumSheets> 0 Then Sheets. Aantal toevoegen: = NumSheets Anders MsgBox "Ongeldig nummer" End If End Sub
Bekijk het dialoogvenster dat deze routine produceert.
Nog een voorbeeld van het gebruik van de InputBox-functie.Een ander type invoerblok
De hier gepresenteerde informatie is van toepassing op de InputBox-functie van VBA. Microsoft lijkt van verwarring te houden, dus je hebt ook toegang tot de InputBox -methode , een methode van het Application-object.
Een groot voordeel van het gebruik van de Application InputBox-methode is dat uw code kan vragen om een bereikselectie. De gebruiker kan vervolgens het bereik in het werkblad selecteren door de cellen te markeren. Hier volgt een kort voorbeeld waarin de gebruiker wordt gevraagd een bereik te selecteren:
Sub GetRange () Dim Rng As Range On Error Doorgaan Volgende set Rng = Toepassing. InputBox _ (prompt: = "Geef een bereik op:", Type: = 8) Als Rng niets is Verlaat dan Sub MsgBox "U hebt bereik geselecteerd" & Rng. Adres einde sub
Zo ziet het eruit.
De methode Application InputBox gebruiken om een bereik te krijgen.In dit eenvoudige voorbeeld vertelt de code de gebruiker het adres van het bereik dat is geselecteerd. In het echte leven zou uw code daadwerkelijk iets nuttigs doen met het geselecteerde bereik. Een aardig ding over dit voorbeeld is dat Excel zorgt voor de afhandeling van fouten. Als u iets opgeeft dat geen bereik is, vertelt Excel u hierover en kunt u het opnieuw proberen.
De applicatie. De InputBox-methode lijkt op de InputBox-functie van de VBA, maar heeft ook enkele verschillen. Controleer het Help-systeem voor volledige details.