Hur Visual Studio kan användas vid import av kontakter till Outlook

Senast uppdaterad torsdag, 08 oktober 2020 Publicerad fredag, 11 september 2020 Skriven av Janne

Reviderat: 2020-10-06

På Microsoft Community kan man lära sig mycket, men också träffa många trevliga personer. Här följer en rapport om just dessa saker när det kommer frågor kring Visual Studio.

Det började med en tråd skapad av en person som behövde tips om hur man i VB (Visual Studio) kunde beräkna avstånd mellan två datum där resultatet skulle anges på formen ”antal år + antal månader + antal dagar”. Vi jobbade oss fram till en lösning utanför Communityn samtidigt som vi blev vänner, om än på lite geografiskt avstånd mellan oss.

Trådägaren, Lennart, hade många idéer vad han ville åstadkomma med VB emedan jag själv ägnat mer tid åt teknik och funktion med VBA. Nu fick jag chansen att växla upp och försöka åstadkomma något vettigt via Visual Studio (2019).

När vi väl klarat av tidsavståndet flaggade Lennart för nästa stora utmaning: Att exportera kontakter från sitt GM konto och importera dem i Outlook. Det hade jag själv gjort för ett antal år sedan men då med en manuell rutin. Så då fick vi idén om att använda VB för att göra jobbet. Borde inte vara så konstigt så det var bara att sätta igång. Att få till en lösning för mina egna kontakter gick relativt bra (tog några dagar). Då programmet sedan testades med Lennarts kontakter uppstod problem, som vi till sist lyckades ta oss förbi (ytterligare några dagar).

Orsak till problemen fanns i följande:

  • Filerna som exporteras är ”kommaseparerade” (.csv) där just kommatecken fungerar som kolumnavgränsare mellan olika fält.
  • Ett särskilt tecken (”vbLf”) används som postavgränsare mellan kontakter.
  • Lennarts och mina filer hade olika layout (inte samma kolumnindelning)

Mina egna kontakter visste jag ju hur de såg ut men inte Lennarts. Kommatecken används inuti kolumner vilket knäckte min logik som byggde på att skanna efter kommatecken.

Dessutom hade redigering gjorts i vissa kolumner där man använt Enter-tangenten för att generera ny rad. Dessvärre genereras då ett ”vbLf” vilket jag inte räknat med. Ytterligare en orsak till att programmen inte fungerade.

Att programmen inte fungerade upptäcktes i samband med att vi ville få till en möjlig sortering genom att ändra ordning på för- och efternamn i det första fältet = Hela namnet.

Slutsats:

  • Använd inte: , (komma) och inte ; (semikolon) och inte ” (citat) vid inmatning av uppgifter på en kontakt
  • Utnyttja inte Ny rad/Enter-tangenten
  • Se till att mappningen i importen blir rätt så att ordinarie sorteringsfunktion för kontakter kan nyttjas

Den aktuella VB koden hittar du här.

Allteftersom det uppkommit nya önskemål (på MSC) har det lett till nya program utvecklade med VBA. Jag har direkt efter, att ett sådant program skapats med VBA, försökt åstadkomma en liknande produkt i Visual studio. I de fall som nu är aktuella har jag försökt åstadkomma en lösning som kan ”levereras” som ett körbart program (.exe fil) mest för att få en förståelse för hur ett program skall göras ”öppet” om filen skall köras utanför Visual Studio.

De två fall som det gäller finns beskrivna i min artikel om VBA. Jag har, ännu, inte lagt ut koden på IT-bloggen. Däremot finns de som körbara program. Om någon användare skulle känna för att testa i sin miljö går det bra att lämna en kommentar på IT-bloggen så hör jag av mig.

Även den allra första VB .NET rutinen, analys av disk innehåll, där kod lagts ut på IT-bloggen, kommer att vara tillgänglig som .exe fil och ”paketeras” tillsammans med de två som nämns här.

Senaste nytt # 1

Det nya går ut på att ”Underlätta arbetet med att återställa objekt som sparats med Filhistorik, då den maskinella rutinen inte fungerar”. Det som är specifikt med en sådan återställning är att det gäller stora volymer med samma objekt i flera utgåvor. I det här aktuella fallet skulle sparade objekt läggas in på en ny dator då den gamla totalhavererat.

Funktionalitet (avser en komplett bearbetning)

  • Behandlar alla objekt i alla mappar och undermappar i en given huvudmapp
  • Rensar filnamn genom att ta bort "tidstämpeln" då sådan förekommer
  • Tar bort objekt med samma namn utom det allra senaste
  • Namnändrar de objekt som skall vara kvar
  • Skapar en analysrapport och logg i Excel

Förberedelser

  • Kopiera hela mappar med innehåll från File History
  • Komplettera behörighet för ALLA - kontot, genom att lägga till en behörighetspost för ALLA med full behörighet
  • Ta bort skrivskydd för alla objekt

Senaste nytt # 2

Det gäller en rutin som skall vara ett maskinellt och bra alternativ till att manuellt mata in kontaktuppgifter från större volymer av inkomna mejl. Rutinen skapades som en direkt följd av ett ärende på Microsoft Community där en person ville få möjlighet att enkelt kunna skicka svarsmejl till ett par hundra inkomna ärenden. Ett sätt var då att skapa en separat distributionslista att använda för ”Hemlig kopia” men helst slippa det tunga och lite osäkra sättet med manuell inmatning av grunddata.

Funktionalitet 

  • Läser alla e-post meddelanden i en angiven mapp, som kan var Inkorg eller en annan mapp på samma nivå som Inkorg.
  • Skapa en kontaktuppgift i en given katalog, som kan vara Kontakter eller en underkatalog till Kontakter.
  • Om den önskade underkatalogen saknas kommer den att skapa automatiskt.