Microsoft Excel Visual Basic makroer Made Easy

Microsoft Excel har en innebygd programmeringsspråk kalt Visual Basic, som lar deg lage skript som utfører oppgaver som ikke er innebygd i Microsoft Excel. Disse skriptene er kalt makroer.

En måte du kan skrive makroer er å ta dem (Developer> Registrer makro), og en annen måte er å åpne Visual Basic integrert utviklingsmiljø og skrive manuset for hånd. Skrive skript på denne måten kan du skreddersy manuset til dine spesifikke behov. Men, må du enten en fungerende kunnskap om Visual Basic språk å skrive skript, eller et eksisterende skript du kan gå inn i IDE.

Validere e-postadresser

Følgende skript validerer e-postadresser som er lagret i det første regnearket i en Excel-arbeidsbok dokument. Skriv inn noen e-postadresser i cellene A1 til A5 av regnearket. Gjør bevisste feil i noen av adressene ved å utelate det tegnet ( "@"). Etter inn manuset i denne artikkelen, kjøre script (alt-F8, "Validate_Emails") for å se de uriktige adresser uthevet.

Skriv inn Script

For å begynne å skrive manuset når du har åpnet opp Excel, skrive inn Visual Basic IDE (alt-F11). (Du kan også kopiere og lime inn manus stedet for å skrive det linje for linje.) I prosjekt ruten til venstre klikker du på navnet på Excel-arbeidsbok, velg deretter Sett Module. Dette gir deg en ny modul der du kan skrive kode.

I koden visningen av modulen du nettopp opprettet, skriver disse funksjonene, er forsiktig med å matche tilfelle av hver bokstav.

Sub Validate_Emails ()

Dim arrEmail As Variant
Dim rc As Boolean
arrEmail = Range("a1:a5").Value

"Sjekk hver celle e-postadresse, nå i en matrise
For i = 1 Til UBound (arrEmail)
rc = blnEmailIsOkay (arrEmail (i, 1))
Hvis (rc = False) Deretter
'Marker cellen med en ugyldig e-postadresse
HilightCell (i)
Slutt om
neste

End Sub

Public Function blnEmailIsOkay (CellContents As Variant) Som boolsk

p = InStr (1, CellContents, "@")

Hvis (p = 0) Then

blnEmailIsOkay = False

Ellers

blnEmailIsOkay = True

Slutt om

End Function

Public Sub HilightCell (i)
r = "a" og jeg & ": en" & i

Med Range (r) .Interior

.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0

End With
End Sub


Hvordan det fungerer

Den "arrEmail =" statement ved starten av Validate_Emails kopierer e-postadresser fra cellene A1 til A5 i regneark en, til et internt utvalg (arrEmail).

Den For loop som følger gjentar gjennom denne matrisen, og kaller en annen funksjon, blnEmailsIsOkay, for å søke etter "@" karakter nødvendig for e-postadresser. Hvis blnEmailsIsOkay ikke finner tegn (returnerer false), en annen funksjon, HilightCell, er kalt til å male den fornærmende celle gul. Den HilightCell funksjonen er et godt sted å begynne fiksing og triksing med og utforske kode, fordi du kan endre detaljer som farge og andre formateringsvalg, og samtidig la den generelle funksjonaliteten i programmet intakt. Prøv for eksempel å endre høydepunkt farge fra gul til blå, eller mønsteret til noe annet enn "xlSolid." Trykk F1 mens markøren er over ".Pattern" og "Color" egenskaper for å få en idé om andre alternativer for disse eiendommene.