Wordmail: makroer

2006-03-26 03:39:30

WinNT, Win95, Win98, Win2K, WinME, WinXP, Win2003, Vista, Win2008, Win7

Scott Marquardt har lavet en stribe makroer til Word, der er specielt velegnede i forbindelse med WordMail. Disse makroer har han stillet til rådighed for alle, og hvis du har kommentarer, ideer eller forbedringer er du velkommen til at skrive til ham (påengelsk) på adressen "sam@wwa.com".

Disse makroer er specielt anvendelige, hvis du lægger dem op i ikonbåndet i din standard Wordmail skabelon eller i højre-kliks menuen for "Tekst(Genvej)"...
Personligt har jeg ikke den store erfaring i generering af makroer til Word, så du skal ikke være for sikker på at jeg kan hjælpe med dette hvis noget går galt...

Den første makro sætter >'er ind i den post du besvarer. Med mindre du har markeret et udsnit, gør den det på alle linier i brevet (så det vil være en god ide at udføre denne makro inden du sætter dig til at skrive). Den fjerner også mellemrum på tomme linier (men selvfølgelig ikke mellemrum, der står foran andre karakterer), og sætter IKKE >'er på tomme linier.
Hvis du har markeret et område, vil det kun være de markerede linier, der bliver berørt...



Sub MAIN
ScreenUpdating 0
ExtendSelection
If Len(Selection$()) < 3 Then
EditSelectAll
Else
LineUp 1
CharRight 1
EndIf
EditReplace .Find = "^p", .Replace = "^p>", .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 0, .FindAllWordForms = 0
EditReplace .Find = "^p>^w^p", .Replace = "^p^p", .Direction = 0, .ReplaceAll
EditReplace .Find = "^p>^w^p", .Replace = "^p^p", .Direction = 0, .ReplaceAll
EditReplace .Find = "^p>^p", .Replace = "^p^p", .Direction = 0, .ReplaceAll
EditReplace .Find = "^p>^p", .Replace = "^p^p", .Direction = 0, .ReplaceAll
CharLeft 1
Insert ">"
ScreenUpdating 1
End Sub


Denne makro lader én vælge mellem flere forskellige signaturer (giver primært mulighed for at begrænse antallet af forskellige oplysninger), indsætte en signatur fil, eller at editere signaturfilen med notesblokken (notepad). Den er rimelig overkommelig at tilpasse. Du skal blot rette den ind, så stier, personlig information osv. passer til dig. Bevar formen "sig." til signatur filnavnet, ellers kunne Windows 95 give dig problemer.


Sub MAIN
On Error Goto quitit
Begin Dialog UserDialog 320, 156, "Signaturer"
OptionGroup  .Adverb
OptionButton 18, 12, 90, 16, "Kærlig hilsen"
OptionButton 18, 28, 74, 16, "Venlig hilsen"
OptionGroup  .Signature
OptionButton 18, 72, 120, 16, "Navn"
OptionButton 18, 88, 120, 16, "Email"
OptionButton 18, 104, 120, 16, "Telefon"
OptionButton 18, 120, 120, 16, "Adresse"
OKButton 145, 8, 158, 28
CancelButton 145, 113, 158, 28
PushButton 145, 77, 158, 28, "Editer fil", .EditFile
PushButton 145, 42, 158, 28, "Brug fil", .UseFile
End Dialog
show:
Dim sig As UserDialog
DisableInput 1
Dialog(sig)
Insert Chr$(13) + Chr$(13)
If sig.UseFile = - 1 Then
Open "C:\sti\sig." For Input As #1
signature$ = Input$(Lof(1), #1)
Insert signature$
Close #1
Goto quitit
EndIf
If sig.EditFile = - 1 Then
Shell "notepad C:\sti\sig."
Goto show
EndIf
If sig.adverb = 0 Then Insert "Kærlig hilsen"
Else Insert "Venlig hilsen"
Insert Chr$(13) + Chr$(13) + "Dit navn" + Chr$(13)
If sig.signature > 1 Then Insert Chr$(13)
If sig.signature > 0 Then Insert "email@adresse" + Chr$(13)
If sig.signature > 1 Then Insert "Telefon" + Chr$(13)
If sig.signature > 2 Then
Insert "Adresse 1" + Chr$(13)
Insert "Adresse 2" + Chr$(13)
End If
Insert ""
quitit:
End Sub


Hvis man er vant til at skrive meget, kan WordMails tekstombrydning i forbindelse med lange afsnit godt virke lidt frustrerende (selv om jeg nu personligt foretrækker det på den måde...)
Problemet opstår hvis man læser en email med en anden skrifttype end den, dokumentet er skrevet med.
Her er en makro, der lader dig lave afsluttede linier (med ENTER) i et afsnit ad gangen (der hurtigt kan laves om til at tage et helt dokument på en gang). Du kan ændre maksimum limie længde fra 72, som den er sat til i nedenstående eksempel) til lige hvad der passer dig (dog vil jeg fraråde et alt for lavt tal...). For at køre den, stiller du dig forrest i afsnittet og sætter den i gang.


Sub MAIN
Start:
ExtendSelection
EditFind .Find = "^p", .Direction = 0
EndRange = GetSelEndPos()
BegRange = GetSelStartPos()
Range = EndRange - BegRange
If Range > 72 Then
Cancel
CharLeft
CharRight 72
EditFind .Find = " ", .Direction = 1
CharRight
Insert Chr$(13)
Goto Start
Else
Cancel
CharRight
End If
End Sub


Den sidste makro aktiverer Netscape Navigator. Du markerer blot en URL (en internet www eller ftp-adresse) og aktiverer makroen. Den fungerer lidt på baggrund af DDE, men der har ikke været meldt om problemer med den. Den er alletiders hvis du abonnerer på "mailing-lister", hvor folk tit strør om sig med anvendelige URL'er (Det slår "klippe/klistre-metoden" (marker, kopier og sæt ind) med flere længder.
Her skal du igen ændre på stien, så der peges på det rigtige program. Vær i øvrigt helt sikker på at du bibeholder mellemrummet efter "netscape.exe " (før det sidste anførselstegn).
Makroen kan naturligvis også anvendes sammen med andre browsere;blot DDE er understøttet...


Sub MAIN
URL$ = Selection$()
If AppIsRunning("Netscape - [") = 0 Then
Shell "D:\Netscape\Program\netscape.exe " + URL$
Goto quitit
End If
AppActivate "Netscape - [", 1
On Error Resume Next
channel = DDEInitiate("NETSCAPE", "WWW_OpenURL")
DDEExecute channel, URL$
DDETerminate channel
quitit:
End Sub


Se også Exchange: Brug WordMail