Tips redaksjonen

Har du forslag til et kult produkt, en ny webtjeneste eller et nytt program som vi bør omtale?

Send en epost til: pcwred@pcworld.no

ANNONSEBILAG

Valget for seriøse gamere

Det er ingen tvil om at SteelSeries tar pc-gaming seriøst. Svært seriøst.
 
ARKIV
Du er her: PC World Norge >
 

Klar for sending?

Willy Verwoerd
09.12.2004 kl 01:48

Reglene i Outlook gir omfattende muligheter for automatisk håndtering av e-posten din, men de har osgå sine klare begrensninger. Det gjelder spesielt ved sending av meldinger, men tar du i bruk Visual Basic for Applications til dette, åpner det seg en ny verden.

For å arbeide med regler i Outlook 2003, velger du Verktøy/Regler og varsler fra menyen (Regelveiviser i tidligere versjoner). Du kan nå konstruere regler enten fra grunnen av eller basert på ferdige maler.

Du vil raskt se at mulighetene ved sending av meldinger er atskillig mer begrenset enn ved mottak. Dessuten blir reglene først aktivert etter at meldingen er sendt – du kan ikke gripe inn før de sendes. Ved å bruke en innebygd hendelse (eng. Event) i Outlook og programmere denne i Visual Basic for Applications (VBA) etter behov, får du imidlertid full kontroll over meldinger du sender.

For å lære mer om hendelser i Outlook, bør du først lese artikkelen «Følg begivenhetene i Outlook». I artikkelen «Ditt eget regelvelde» kan du lære mer om Outlook-regler. Har du ikke noen VBA-erfaring fra før, bør du dessuten lese våre tidligere artikler som introduserer deg til VBA. Du finner en oversikt over disse her.

Vern dine venner

Uønsket e-post eller spam er blitt et alvorlig problem, og du bør derfor passe godt på at e-postadressen din ikke kommer på avveie. Men enda viktigere er det å beskytte adressene til dine venner og forretningsforbindelser.

En vanlig tabbe blant uerfarne e-postbrukere er å plassere alle mottakere i Til-feltet, uansett hvor mange det dreier seg om. Resultatet av dette er at alle adressene er synlige for og derfor blir distribuert til alle mottakere. Hvis det for eksempel gjelder en kundeliste, betyr det altså at alle kundene får tilgang til hele kundelisten din – og står fritt til å utnytte den til egne formål.

Skaden er ikke så stor hvis det dreier seg om fem eller ti mottakere, men det er ikke uvanlig at meldinger sendes til hundrevis av mottakere på denne måten. De færreste kunder vil sette pris på at du sender deres e-postadresse til uvedkommende, så dette er mildt sagt et dårlig trekk for å opparbeide gode kundeforhold.

For å unngå dette, må du alltid bruke Blindkopi-feltet når du sender meldinger til mottakere som ikke kjenner hverandre. Dette sikrer at hver enkelt mottaker bare kan se sin egen adresse, og ikke adressene til andre mottakere. Hvis dette feltet ikke vises når du starter en ny melding, kan du aktivere det med Vis/Felt for blindkopi.

Med denne problemstillingen som bakgrunn, skal vi lage en VBA-rutine som sjekker antall mottakere i Til- og Kopi-feltet, og flytter dem til Blindkopi-feltet hvis det er for mange. Dermed styrer du unna pinlige tabber som kan gi deg lav anseelse hos dine forbindelser.

ItemSend

Nøkkelen til vår løsning og alle andre oppgaver der du ønsker å fange opp sending av meldinger, er applikasjonshendelsen Item­Send. For å legge inn denne rutinen, åpner du Visual Basic-redigering ved å taste Alt-F11. I prosjektvinduet i VBA, dobbelklikker du på modulen This­Out­look­Session slik at kodevinduet åpnes.

I kodevinduet velger du først Application i listen øverst til venstre, og deretter Item­Send i listen til høyre. Outlook legger nå inn et skjelett for Item­Send-rutinen der du kan skrive programkoden som skal løse oppgaven.

Item­Send har to parametere: Item inneholder selve meldingen som skal sendes, mens Cancel kan brukes for å avbryte sendingen.

Vår rutine er vist i figur 1, og vi skal se på hvordan den virker. Som nevnt blir alle adresser du legger inn i Til-feltet eller Kopi-feltet i en melding, synlige for alle mottakere av meldingen. Finner vi for mange slike synlige adresser, skal vi hindre at de blir tilgjengelig for uvedkommende ved å flytte adressene til Blindkopi-feltet.

Rutinen starter med konstanten Grense, som angir det maksimale antallet synlige adresser som vi kan akseptere. Hvis antallet er høyere, blir alle adressene flyttet til Blindkopi-feltet etter at brukeren har fått en melding og godkjent flyttingen.

Vi sjekker også om det finnes én eller flere distribusjonslister blant adressene. Distribusjonslister inneholder normalt en del adresser. Derfor er dette i seg selv nok til at vi aktiverer flyttingen av adresser, uansett hvor mange synlige adresser som ellers finnes.

Programkoden fortsetter med Dim-setninger som definerer de fem variablene vi trenger: Mottaker brukes for å arbeide med hver enkelt mottaker, Antall­Synlig teller opp antall synlige mottakere, Distrib blir sann hvis det er en distribusjonsliste blant adressene, Adr­Type brukes for å sjekke dette, mens Svar håndterer brukerens svar på meldingsboksen.

To oppgaver

Etter at de to variablene Antal­lSynlig og Distrib er satt til sine startverdier, kan rutinen påbegynne selve arbeidet. Jobben består av to oppgaver: Først teller vi opp antall adresser i feltene Til og Kopi. Hvis det finnes en distribusjonsliste blant adressene, blir Distrib satt til True.

Siden hele rutinen arbeider med meldingen (Item), har vi pakket inn alle setningene i en With Item-setning, slik at Item er lett tilgjengelig overalt.

Hver melding har en samling (eng. Collection) med navnet Recipients som inneholder meldingens mottakere. Vi kan derfor lage en For Each-løkke som ser nærmere på alle mottakere av typen Til (olTo) eller Kopi (olCC, eng. «Carbon Copy»). For hver mottaker vi finner i et av de to feltene, øker vi telleren med 1.

Deretter bruker vi egenskapen Address­Entry.Dis­play­Type for å sjekke om adressetypen er en distribusjonsliste. Det er tilfellet hvis den har verdien ol­Dist­List eller o­lPr­ivate­Dist­List.

Med løkken har vi nå kartlagt to ting: Hvor mange synlige mottakere meldingen har, og om det finnes én eller flere distribusjonslister blant adressene. Hvis det finnes flere synlige mottakere enn grensen vår eller vi har funnet minst én distribusjonsliste, flytter vi samtlige adresser til Blindkopi-feltet.

Det ville være litt uhøflig å gjøre dette uten videre, og vi har derfor laget en meldingsboks som informerer brukeren om hva vi har funnet. Meldingsboksen er vist i figur 2.

Brukeren kan godkjenne flyttingen av adresser ved å klikke OK. Alle adressene fra Til- og Kopi-feltene blir da flyttet til Blindkopi-feltet og meldingen sendes.

Klikker brukeren Cancel, blir sendingen avbrutt ved å sette parameteren Cancel til True. Brukeren kommer da tilbake til den usendte meldingen, og kan selv endre mottakerne og deretter prøve å sende meldingen på nytt.

Flyttingen til Blindkopi-feltet er enkel å utføre: Vi gjennomgår på nytt alle mottakerne med en For Each-løkke. Hvis mottakeren er av typen olTo eller olCC, settes typen i stedet til olBCC (eng. «Blind Carbon Copy»).

Noen utfordringer

Rutinen vår gjør en god jobb, men har også et par svakheter. Hvis meldingen har flere mottakere enn grensen, og du ikke vil plassere disse i Blindkopi-feltet, får du rett og slett ikke sendt meldingen (for eksempel en melding til seks venner som alle kjenner hverandre og allerede har hverandre e-postadresse).

En annen kosmetisk svakhet er at Outlook 2003 legger din egen avsenderadresse i Til-feltet når du sender meldinger som blindkopier. Det er bedre å bruke et mer beskrivende mottakernavn i Til-feltet, som for eksempel «Våre kunder» (men fortsatt med din egen adresse). Mottakerne forstår da at meldingen også er sendt til andre enn dem selv.

Begge disse punktene kan rettes med noen ekstra programsetninger, og vi foreslår at du tar utfordringen. Det vil være gode øvelser for å bli bedre kjent med VBA og objektmodellen i Outlook. Bruk hjelpfilen for å finne frem, og ta kontakt for å få noen hint om du blir stående helt fast.

Som vanlig bør du også skrive inn denne rutinen selv, slik at du blir godt fortrolig med å skrive VBA-kode. Hvis du eventuelt trenger å sjekke at alt er korrekt, kan du laste ned programkoden her.

Testet i Outlook 2003

Løsningene i denne artikkelen er utviklet og testet i Outlook 2003, men vil så vidt vi vet fungere tilsvarende i Outlook XP.

På jakt etter ny jobb?

På tide med et kurs?

blog comments powered by Disqus

TEST: Mobilen dør i vinterkulda

Oppsiktsvekkende test viser at moderne smarttelefoner ikke tåler nordisk vinter. Verst er iPhone.

Les mer om dette Les mer

TEST: Godt nett via strøm

Å bruke stømnettet kan være et godt alternativ til både vanlig kablet og trådløst nettverk.

Les mer om dette Les mer

Google får bot for å være gratis

Det skal ikke lønne seg å gi bort ting i Frankrike.

Les mer om dette Les mer

TEST: Toppmoderne med gammeldags innmat

Nå er de heteste tastaturene basert på gammeldags teknologi.

Les mer om dette Les mer

Små kameraer - kraftig zoom

Nikon er på banen med to nye superzoom-kameraer.

Les mer om dette Les mer

ANNONSEBILAG

Komplett.no: Best i sin bransje

Komplett.no har de mest fornøyde kundene innen elektronikkbransjen. Det bekrefter undersøkelsen Norsk Kundebarometer 2011.

En ny ordre hvert 24. sekund

Komplett.no har over 21 000 kvadratmeter ved sitt hovedlager i Sandefjord. Herfra betjenes kunder i Norge, Sverige og Danmark.

Komplett.no er Skandinavias største PC-produsent.

Hvert år produserer Komplett.no over 25 000 PC?er. Alle modeller skreddersys etter kundenes egne ønsker og inneholder det nyeste av teknologi.
Tips & guider

Lydkontrollen som ingen vet om

Individuell volumstyring er en skjult skatt i Windows som veldig få vet om. Dette tipset må du bare lære deg.

Les mer Les mer

Bedre Aerosnap med Aquasnap

Gratisprogrammet som gjør Windows-funksjonen enda bedre.

Les mer Les mer

Bygg skrifter inn i Word-dokumenter

TIPS: Slik sørger du for at andre kan lese dokumentene slik de var ment å skulle leses.

Les mer Les mer

i samarbeid med JOTTA
Sikker lagring av filene dine på nett Ubegrenset lagringsplass for PC og MAC

Anbefalte tester

TEST: Acers letteste

Acer Aspire S3 er en av de første nye ultraportable som rettes mot konsumentmarkedet.

Les mer Les mer

TEST: Nå kan du glemme piratfilmene - filmleie på nett funker bra

Det er helg og det er høst. Den perfekte tiden for å se film. Vi har testet sju filmtjenester på nett.

Les mer Les mer

TEST: Er den dyreste ruteren best?

Netgear WNDR4500 er blant de aller dyreste wlan-ruterne i sitt segment. Det gir høye forventninger.

Les mer Les mer

Siste bildeserie

Det beste fra CES 2012

BILDESERIE: Ultrabærbare pc-er, smart-tv-er og vanntette mobiltelefoner. Her er noen av produktnyhetene fra CES i Las Vegas.

Les mer Les mer

Siste kjøpeguide

Gjør et kupp på Ebay

PC Worlds Ebay-guide: Spar tusenlapper på smarte kjøp. Og styr unna 200-kronersfellen.

Les mer Les mer

Ikke gå glipp av bladet

PC World nr. 13 i salg!

I PC World nr. 13 kårer vi de mest nyskapende produktene i 2011.

Les mer Les mer

I PC Worlds papirutgave finner du de store testene og de lange temaene. Abonnentene får i tillegg ekstramagasinet SmartWorld.
Harry-arkivet

Harry Hurt

Bla deg gjennom flere år med Harry-klassikere.

Les mer Les mer


Copyright 2012 IDG Magazines Norge AS. All rights reserved

Postboks 9090 Grønland – 0133 OSLO / online@idg.no / Telefon 22053000

Ansvarlig redaktør Morten Kristiansen / Utviklingsansvarlig Ulf H. Helland / Salgsdirektør Jon Thore Thorstensen