10 trinn for å lage en Word-brukerform for adressering av brev

Brukerformer er en flott måte å anmode om innspill på. For eksempel kan du kartlegge noen få bokmerker via en bit VBA-kode, og et raskt klikk kan generere adresseelementene for en bokstav. Ved å følge disse 10 trinnene, kan du opprette en brukerformmal som oppfordrer adresseelementer fra en bruker.

Det skjer mye, men den viktige delen av denne teknikken er å kartlegge brukerformkontrollene til bokmerkene i malen. Jeg brukte denne metoden for å generere adresseelementer i et enkelt brevdokument (for å forenkle eksemplet); Du kan bruke den samme prosessen for mer kompliserte datainnsamlingsoppgaver.

Merk: Du kan laste ned eksempelmalen for denne teknikken.

1: Begynn med en grunnleggende design

Den første designen din skal inneholde riktig kontrolltype for hvert adresseelement og et navn for hver kontroll. Tabell A identifiserer kontrolltypen, kontrollnavnet og bokmerkenavnet for hvert adresseelement. Kommandoknappen vil kopiere inndataverdiene fra brukerformen til bokstaven. Bokmerket bmAddress2 er listet opp flere ganger fordi vi kombinerer by, stat og postnummer i en linje. Det er greit hvis ting endrer seg etter hvert som du går. Dette er bare noe for å komme i gang.

Tabell A

Vi bruker disse adresseelementene for skjemaet.

2: Lag brukerformen

Ved å bruke figur A som guide vil du legge til kontrollene som er oppført i tabell A i en brukerform. Åpne først VB Editor ved å trykke på Alt + F11. Velg deretter UserForm fra Sett inn-menyen for å vise en tom brukerform og verktøykassen. Hvis du ikke ser Verktøykassen, velger du Verktøykasse fra Vis-menyen. Hvis det forsvinner når som helst, klikker du bare på brukerformen.

Figur A

Legg til disse kontrollene i den blanke brukerformen.

Etter å ha lagt til kontrollene, kan du navngi dem via Egenskapsvinduet. Hvis du ikke ser det vinduet, trykk F4. Sett MultiLine-egenskapen til Adresse-boksen til True. (For å ordne kontrollene, velg dem og velg de aktuelle alternativene fra Format-menyen.)

3: Populere kontrollene

Vi bruker VBA til å fylle ut dato- og tilstandskontrollene når du kjører skjemaet. For å åpne skjemaets modul dobbeltklikker du på brukerformen. Skriv deretter inn følgende kode:

 Privat underbrukerForm_Initialiser () 
 'Befolkning cboState i ufAddressLetter. 
 Me.cboState.List = Split ("AL AK AZ AR CA CO CT DE DC FL GA" _ 
 & "HI ID IL I IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH" _ 
 & "NJ NM NY NC ND OH OK ELLER PA RI SC SD TN TX UT VT VA WA" _ 
 & "WV WI WY") 
 Befolk txtDato i ufAddressLetter. Du kan overskrive denne verdien. 
 Me.txtDate.Value = Format (nå, "mmmm dd, åååå") 
 Slutt sub 
Dobbeltklikk ufAddressLetter i prosjektvinduet for å gå tilbake til skjemaet. For å se koden på jobb, trykk F5 for å kjøre brukerformen. Hvis du gjør det, vil de to kontrollene bli befolket, som vist i figur B.

Figur B

Initialisering av brukerformen inneholder to kontroller.

4: Automatiser hilsenen

Gå tilbake til modulen og legg til følgende kode, som automatisk fyller inn hilsningskontrollen ved å bruke fornavnet som er angitt i txtName:

 Privat sub txtName_Exit (ByVal Cancel As MSForms.ReturnBoolean) 
 'Automatisk utfylling for honnørkontroll. 
 Ved feil Fortsett neste 
 Me.txtSalutation = "Kjære" & Venstre (txtName, InStr (Me.txtName, "") - 1) & ":" 
 Feil GoTo 0 
 Slutt sub 

Bruk VBEs objekt- og prosedyre-kontroller for å gå inn i prosedyrens stubber (Sub- og End Sub-linjene) for å sikre at de refererte argumentene er riktige.

5: Legg til koden som genererer brevet

Ved hjelp av tabell A er du klar til å kartlegge brukerformkontrollene til koden som vil overføre inndataverdier fra brukerformen til bokstaven. (Bokmerkene eksisterer ikke ennå, men det er greit.) Dobbeltklikk på brukerformen for å gå tilbake til modulen, og skriv deretter inn følgende kode:

 Privat sub cmdAddLetter_Click () 
 'Kopier bokstavelementer til bokstavmal fra brukerform 
 Dim bmks Som bokmerker 
 Dim bmRange As Range 
 'Gi brukerformsverdiene til dokumentets bokmerker. 
 Angi bmks = ActiveDocument.Bookmarks 
 Angi bmRange = ActiveDocument.Bookmarks ("bmDate"). Område 
 bmRange.Text = Me.txtDate.Value 
 Angi bmRange = ActiveDocument.Bookmarks ("bmName"). Område 
 bmRange.Text = Me.txtName.Value 
 Angi bmRange = ActiveDocument.Bookmarks ("bmAddress"). Område 
 bmRange.Text = Me.txtAddress.Value 
 Angi bmRange = ActiveDocument.Bookmarks ("bmAddress2"). Område 
 bmRange.Text = Me.txtCity.Value & ", " _ 
 & Me.cboState.Value & "" _ 
 & Me.txtZip.Value 
 Angi bmRange = ActiveDocument.Bookmarks ("bmSalutation"). Område 
 bmRange.Text = Me.txtSalutation.Value 
 Me.Hide 
 Slutt sub 

6: Legg til koden som kjører brukerformen

Du trenger en makro for å vise brukerformen. Åpne ThisDocument-modulen (fra Project Explorer) og skriv inn denne korte prosedyren:

 Sub RunUserForm () 
 Kjør sfAddressLabel 
 Dim frm As New ufAddressLetter 
 frm.Show 
 Slutt sub 

7: Automatiser brukerformen

Det er en siste bit av koden du kan legge til. Mens du fortsatt er i ThisDocument-modulen, skriver du inn følgende kode:

 Sub AutoNew () 
 'Kjør ufAddressLetter når filen åpnes. 
 Ring RunUserForm 
 Slutt sub 

Word kjører denne koden for å vise brukerformen hver gang du åpner filen.

8: Sett inn bokmerkene

Nå som brukerformen og koden er på plass, går du tilbake til det tomme Word-dokumentet slik at du kan sette inn bokmerkene. Å vise bokmerker vil gjøre dette trinnet enklere:

  1. Klikk på Fil-fanen, og klikk deretter Alternativer (under Hjelp). I Word 2007, klikk på Office-knappen og velg deretter Alternativer for Word. I Word 2003 velger du Valg fra Verktøy-menyen, klikker på Vis og hopper til trinn 3.
  2. Klikk på Avansert i venstre rute.
  3. Merk av for Vis bokmerker i delen Vis dokumentinnhold. (I Word 2003 er det Show-delen.) Klikk OK.

Figur C

Merk av for Vis bokmerker-alternativet.
Se tabell A for bokmerkenavnene og bruk figur D som en plasseringsveiledning for å sette inn hvert bokmerke på følgende måte:
  1. Klikk kategorien Sett inn. I Word 2003 velger du Bokmerke fra Sett inn-menyen og hopper til trinn 3.
  2. Klikk på Bokmerke i gruppen Koblinger.
  3. Skriv inn navnet på bokmerket ditt. For eksempel vil det første bokmerket ditt være bmDate.
  4. Klikk Legg til.

Sett inn de gjenværende bokmerkene.

Figur D

Å vise bokmerke-symbolene gjør det lettere å sette inn flere bokmerker.

9: Lagre som mal

Det er mest sannsynlig at du ikke vil gjøre alt dette problemet for et enkelt dokument, så du vil lagre arbeidet ditt som en mal. Gjør det slik:

  1. Klikk på Fil-fanen (Office-knappen i 2007), og klikk deretter Lagre som. I Word 2003 velger du Lagre som fra Fil-menyen og hopper til trinn 3.
  2. Klikk på pålitelige maler i stedsfeltet. (Du må lagre malen på et pålitelig sted for at makroen AutoNew () skal fungere. Ellers må du tilbakestille makrosikkerhetsinnstillingene.)
  3. Skriv inn et navn for filen. (I Word 2003, endre mappeposisjonen, hvis nødvendig.)
  4. Velg Word Macro-Enabled Template (.dotm) fra rullegardinmenyen Save As Type. I Word 2003 velger du Dokumentmal (.dot).
  5. Klikk Lagre.

10: Åpne malen

Hvis du vil bruke ufAddressLetter til å generere adressen til en bokstav, oppretter du et nytt dokument basert på malen som følger:

  1. Klikk på Fil-fanen (Office-fanen i 2007) og velg Ny. I Word 2003 velger du Ny fra Fil-menyen.
  2. I Mine tilgjengelige maler klikker du Mine maler. I Word 2003 velger du en mal fra ruten Nytt dokument (til høyre).
  3. Velg malen og klikk OK.

Sett brukerformen til å fungere

Når først åpnes, er brukerformen standard til gjeldende dato. Når du trykker på Tab eller Enter etter å ha skrevet inn et navn, fyller skjemaet hilsenen. Du kan endre begge deler hvis du vil. Når du bruker multiline-funksjonen til å oppgi en adresse med mer enn en linje, trykker du på Ctrl + Enter for å tvinge markøren til neste linje i kontrollen. Figur E viser skjemaet som er fylt ut. Klikk på kommandoknappen Address Letter for å generere bokstaven, vist i figur F, ved å bruke inngangsverdiene.

Figur E

Fyll ut brukerformen.

Figur F

Klikk på kommandoknappen for å generere adresseelementene til den nye bokstaven.

Ekstra betraktninger

Koden har ingen datavalidering eller feilhåndtering. Det er heller ingen kode for å tømme bokmerkene. For å opprette et nytt brev, i dette tilfellet, ville du bare åpne et nytt maldokument. Du kan utføre RunUserForm på nytt ved å bruke alternativet Makroer i kodegruppen på fanen Utvikler. Når du bruker denne teknikken på mer komplekse former og tilpassede dokumenter, kan du håndtere disse tingene annerledes.

Topp 10 nyhetsbrev

Vend deg til disse må-lesne primerne for å få den magre på de hotteste teknologiske emner, strategier og analyser. Leveres fredager

Registrer deg i dag

© Copyright 2021 | pepebotifarra.com