Aan de slag met Excel VBA UserForms

Anonim


In dit artikel leer je de basis van VBA-gebruikersformulieren. Ik zal uitleggen hoe je een formulier in Excel maakt, hoe je de VBA-toolbox gebruikt, hoe je met gebruikersinvoer omgaat en tot slot hoe je de gebruikersinvoer opslaat. We zullen deze onderwerpen doornemen aan de hand van een voorbeeld en een stapsgewijze handleiding. Als u dit leest, dan neem ik aan dat u de basis van Excel VBA kent.
Laten we zonder verder uitstel beginnen.
Maak een formulier voor investering in Excel en bewaar record
We beginnen met het ontwerpen van het gebruikersformulier. In dit gebruikersformulier hebben we één tekstvak voor naam, één voor leeftijd, één voor investeringsbedrag en een paar keuzerondjes voor geslacht. Laten we beginnen.

Ontwerp het gebruikersformulier

  • Open de visuele basiseditor in Excel met de sneltoets ALT + F11. Klik in Project Box met de rechtermuisknop op VBA-project(jouw bestand). In invoegen optie, kies Gebruikersformulier.
  • Er wordt onmiddellijk een nieuwe map gemaakt en uw gebruikersformulier wordt gevonden. Alle gebruikersformulieren voor dit project worden in deze map toegevoegd.
  • Wijzig de naam van het formulier in InvestmentForm in de eigendomsdoos.
  • Het eigenschappenvenster wordt linksonder in de projectverkenner weergegeven. Als je het niet kunt zien, ga dan naar bekijken en klik op Eigenschappen venster. We zullen het veel gebruiken, dus zorg ervoor dat het er is. Het wordt gebruikt voor het stylen, benoemen en aanpassen van formulieren.

  • Voeg elementen toe aan formulier: In bovenstaande afbeelding heb ik al elementen toegevoegd (labels, tekstvak, opdrachtknop). Een nieuw gebruikersformulier is echter volledig leeg. U moet de toolbox gebruiken om elementen aan uw formulier toe te voegen. Als je de toolbox niet kunt zien, haal hem dan van weergave tabblad.

  • Voeg labels toe met de toolbox voor beschrijvende namen. Tekstvak toevoegen voor gebruikersinvoer.

    Voeg twee keuzerondjes toe en noem ze Man en Vrouw.

    Ik heb een frame gebruikt om ze in te kapselen, maar dat is niet nodig.

    Opdrachtknoppen toevoegen indienen en Annuleer om een ​​bewerking uit te voeren op de gegeven invoer.

  • Naam Elementen: Het tekstvak, labels, knoppen, etc. zijn allemaal elementen. En om ze in VBA-code te gebruiken, moeten we ze namen geven. We gebruiken het eigenschappenvenster om hun naam te wijzigen.
  • Selecteer het onderdeel. Hier ben ik selecteer het tekstvak voor de naam. Ga naar het eigenschappenvenster en verander de naam in "NaamBox”. Doe hetzelfde voor elk element dat u gaat gebruiken. (u hoeft labels geen naam te geven, tenzij u wilt dat ze klikbaar zijn.)


Ik heb het element hernoemd zoals onderstaande tabel en ik zal deze namen gebruiken om ernaar te verwijzen. Je kunt verschillende namen hebben. Vervang enkel deze namen met uw naam. Dit zijn VBA-namen (codenaam) die in code worden gebruikt. Ze worden niet weergegeven op de vorm.
De tekst die u op labels en knoppen kunt zien, zijn "Bijschriften". De naam en het bijschrift van het element kunnen desgewenst hetzelfde zijn.

Element Hernoemen
Naam tekstvak NaamBox
Tekstvak Leeftijd AgeBox
Mannelijke optieknop MaleOption
Vrouwelijke optieknop Vrouwelijke Optie
Tekstvak Investering InvestBox
Opdrachtknop verzenden Verzendknop
Opdrachtknop annuleren AnnulerenKnop
  • Gebruikersformulier aan gebruiker tonen: Nu het formulier klaar is, laten we het aan de gebruiker zien. Maar wacht, hoe doe ik dat. Er is geen optie op het werkblad om het gebruikersformulier te bellen.
  • Eigenlijk heeft het gebruikersformulier een trigger nodig. Het kan niet op zichzelf worden getoond. U kunt een opdrachtknop, een subroutine of een gebeurtenis gebruiken om een ​​formulier op het scherm te laten verschijnen.

    Hier ga ik een opdrachtknop gebruiken om het gebruikersformulier te activeren.

    • Ga op een werkblad naar het tabblad ontwikkelaars? Invoegen? Knop (formulierbesturing). Hernoem het open formulier.
    • Klik er met de rechtermuisknop op. Klik op macro toewijzen en klik vervolgens op nieuw.

  • Er wordt direct een sub aangemaakt. Voeg nu deze regel toe aan die sub.
Sub Open_Form() 'Openingsformulier InvestmentForm.Show End Sub 

Het is gebeurd. Ga terug naar dat blad en klik op de knop. Het gebruikersformulier verschijnt.

  • Blad invullen met VBA-gebruikersformulier: toen we op de opdrachtknop (open formulier) klikten, verschijnt het formulier. Nu kunt u het formulier invullen. Maar als we op de verzendknop klikken, zouden er gegevens op dit blad moeten zijn ingevoerd, maar er gebeurt niets.

Want daar hebben we geen vba-instructie voor geschreven. We moeten gebruikersformuliergegevens opslaan in een blad.

  • Ga terug naar VBA en dubbelklik op de Indienen knop. Er wordt automatisch een nieuwe sub aangemaakt. Deze sub is ingesloten in het formulier en je kunt het in geen enkele module vinden. Dit is hetzelfde voor elk vormelement.
  • Schrijf deze vba-code in die sub.
 Private Sub SubmitButton_Click() Sheet1.Activate 'krijg de eerste lege rij op het blad (lees er hier over) lstrow = Cells(Rows.Count, 1).End(xlUp).Row Set firstEmptyRow = Range("A" & lstrow + 1 ) 'initialiseer elke cel met gegevens firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'eerste cel naar rechts firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'derde cel naar rechts' keuzerondje aanvinken If MaleOption.Value = True Then firstEmptyRow.Offset(0, 2).Value = "Man" 'tweede cel naar rechts Else firstEmptyRow.Offset( 0, 2). Waarde = "Vrouwelijk" 'tweede cel naar rechts End If 'Sluitingsformulier Unload Me End Sub 

Het bovenstaande fragment van VBA-code wordt uitgevoerd wanneer op de verzendknop wordt geklikt. Het vindt de eerste lege rij op het blad en vult het met waarden die in vorm worden verstrekt. En uiteindelijk sluit het het formulier met het commando "Unload Me".

  • Gebruik de opdracht Annuleren om het formulier te sluiten. Voorlopig is de annuleerknop nutteloos. Het doet niets. Als u de invoer wilt afbreken, kunt u de annuleerknop gebruiken. In dat geval:

Dubbelklik op de opdrachtknop Annuleren in de VBA-editor. Er wordt een nieuwe sub aangemaakt. Schrijf gewoon deze regel code om het gebruikersformulier te sluiten.

 Private Sub CancelButton_Click() 'Sluitingsformulier Unload Me End Sub 

Ten slotte ziet de formuliercode er als volgt uit.

En dat is het. Dit is hoe je Excel vba userform gebruikt om input van gebruikers te krijgen. In dit artikel hebben we zojuist het basisgebruik van userform onderzocht, zodat u er vertrouwd mee raakt. Het is eenvoudig, als je kennis hebt van basis vba.

In toekomstige artikelen zullen we meer geavanceerde functionaliteiten van vba userforms in Excel onderzoeken. We zullen een gebruikersformulier in Excel maken om nog veel meer te doen. We zullen verschillende tools en elementen verkennen die beschikbaar zijn voor vba userform. Oefen dit tot die tijd. U kunt dit bestand desgewenst ter referentie downloaden.
Dus ja jongens, dit was een kleine en eenvoudige tutorial met gebruikersformulieren. Ik hoop dat het vindingrijk was. Laat het me weten als je hier twijfels over hebt, laat het me weten in de comments hieronder.
gerelateerde artikelen

Verander de waarde/inhoud van verschillende UserForm-controls met VBA in Excel

Voorkom dat een gebruikersformulier wordt gesloten wanneer de gebruiker op de x-knop klikt door VBA in Excel te gebruiken

Retourneer de cellen waarnaar door de gebruiker wordt verwezen met behulp van RefEdit-besturingselement van gebruikersformulier in Excel
Populaire artikels:
De VERT.ZOEKEN-functie in Excel

AANTAL.ALS in Excel 2016

Hoe de SUMIF-functie in Excel te gebruiken?