< návrat zpět

MS Excel


Téma: úprava makra - prechod z outlook 2003 - 2007 rss

Zaslal/a 23.4.2019 13:31

kabakaMakro funguje, ale pri prechode z 2003 do 2007 inak formátuje. A už si s tým neviem poradiť.

Za prvým riadkom po zaenterovaní odskočí riadok o 12 pt. V 2003 to nerobilo.

Novú poštovú správu mám formátovanú na Times New roman, 12 pt, ale Projekt spúšťaný makrom má Calibri, 11 pt.

Sub mail()
'-----------------------------------------
'DECLARE AND SET VARIABLES
Dim myOutlok As Object
Dim myMailItm As Object
Dim Signature As String
Set otlApp = CreateObject("Outlook.Application")
Set OtlNewMail = otlApp.CreateItem(olMailItem)
'-----------------------------------------
'GET DEFAULT EMAIL SIGNATURE
Signature = Environ("appdata") & "\Microsoft\Signatures\"
If Dir(Signature, vbDirectory) <> vbNullString Then
Signature = Signature & Dir$(Signature & "*.htm")
Else:
Signature = ""
End If
Signature = CreateObject("Scripting.FileSystemObject").GetFile (Signature).OpenAsTextStream(1, -2).ReadAll
'-----------------------------------------
'CREATE EMAIL
OtlNewMail.HTMLBody = Signature
With OtlNewMail
.To = "menopriezvisko@.firma.sk"
.CC = ""
.Subject = "dodatok do MOSu!"
.HTMLBody = "<HTML><BODY>Dobrý deň!<br>Prosím o nahodenie dodatku do MOSu!<br>Ďakujem. <br><br><br><br><br></BODY></HTML>" & Signature
.Display
'.Send
End With
'-----------------------------------------
'CLEANUP
Set OtlNewMail = Nothing
Set otlApp = Nothing
Set otlAttach = Nothing
Set otlMess = Nothing
Set otlNSpace = Nothing
End Sub


DOPLNENIE

Tak dosiahla som font Times, zrušila som odsek ale veľkosť stále 11.

.HTMLBody = "<HTML><BODY><font face=times><font size=12px>text</p> </size></font></BODY></HTML>

Zaslat odpověď >

#043217
elninoslov
Mne to robí takto OK:
Sub mail()
'-----------------------------------------
'DECLARE AND SET VARIABLES
Dim otlApp As Object
Dim OtlNewMail As Object
Dim Signature As String
Set otlApp = CreateObject("Outlook.Application")
Set OtlNewMail = otlApp.CreateItem(olMailItem)
'-----------------------------------------
'GET DEFAULT EMAIL SIGNATURE
Signature = Environ("appdata") & "\Microsoft\Signatures\"
If Dir(Signature, vbDirectory) <> vbNullString Then
Signature = Signature & Dir$(Signature & "*.htm")
Else
Signature = ""
End If
Signature = CreateObject("Scripting.FileSystemObject").GetFile(Signature).OpenAsTextStream(1, -2).ReadAll
'-----------------------------------------
'CREATE EMAIL
'OtlNewMail.HTMLBody = Signature
With OtlNewMail
.To = "menopriezvisko@.firma.sk"
.CC = ""
.Subject = "dodatok do MOSu!"
.HTMLBody = "<HTML><BODY><P STYLE='font-family:Times New Roman;font-size:16'>Dobrý deň!<br>Prosím o nahodenie dodatku do MOSu!<br>Ďakujem. <br><br><br><br><br> " & Signature
.Display
'.Send
End With
'-----------------------------------------
'CLEANUP
Set OtlNewMail = Nothing
Set otlApp = Nothing
End Sub

Inak mali ste tam zle nadefinované premenné.

Ale neviem, čo s tým medzerami pred a za odsekmi, ako ich zrušiť...citovat
#043218
kabaka

elninoslov napsal/a:

Mne to robí takto OK:


Pouužila som celé vaše makro.
Tak formát funguje, medzery som si presunula.
Len namiesto podpisu mi ukazuje cestu k nemu, to som predtým nemala.

V tom mojom mi zase funguje podpis, formát je times, nie time new roman, a veľkosť mi neberie.citovat
#043219
elninoslov
Heh, samozrejme :)
Ja nemám žiaden taký súbor v danom umiestnení, tak som si vyremoval apostrofom riadok, kde sa načíta obsah toho súboru. Odstránte si apostrof na začiatku riadku
'Signature = CreateObject(...
Vyššie som to už urobil.citovat
#043220
kabaka

elninoslov napsal/a:

Heh, samozrejme :)
Ja nemám žiaden taký súbor v danom umiestnení, tak som si vyremoval apostrofom riadok, kde sa načíta obsah toho súboru. Odstránte si apostrof na začiatku riadku
'Signature = CreateObject(...
Vyššie som to už urobil.


ok opravené, ale veľkosť mi ale stále neberie, vyskúšala som už rôzne zápisy. 16 - je u mňa 11, a 17 je už 13

bez ohľadu nato, či dám pt, px alebo nedám nič

pri iných je 10 -10, 13 je 13, ale 12 stále len 11

pridala som aj desatinnú čiarku aj bodku a nič

small je na 11, medium je na 13,5, large je na 18

už som zmenila aj jednotky v outlook z cm na body - 13, 10 sa nastaviť dá, ale 12 hodí stále na 11

aj toto som vygooglila

https://litmus.com/community/discussions/6011-how-do-you-convert-pt-units-into-px-unitscitovat
#043225
kabaka
Už som zmenila aj šablóna NormalEmail, políčko nepridávať medzery za rovnakým štýlom je tam zaškrtnuté. Nová správa je už bez medzier, ale v projekte sa to neprejaví.

Na nepridávanie medzier som našla dva linky

https://stackoverflow.com/questions/23418243/how-can-i-programmatically-change-dont-add-space-between-paragraphs-of-the-sam

https://stackoverflow.com/questions/15522349/remove-space-before-and-after-in-outlook

Toto je funkčné, len neviem ako to pridať do makra.


Sub FixParagraphSpacing()
Dim objOL As Application
Dim objDoc As Object
Dim objSel As Object

Set objOL = Application
Set objDoc = objOL.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection

objSel.ParagraphFormat.SpaceBefore = 0
objSel.ParagraphFormat.SpaceBeforeAuto = False
objSel.ParagraphFormat.SpaceAfter = 0
objSel.ParagraphFormat.SpaceAfterAuto = False

Set objOL = Nothing
Set objDoc = Nothing
Set objSel = Nothing
End Sub
citovat
#043231
kabaka
Dnes som si pozrela toto video.

Tento krok som už spravila pred jeho videním. Na makro-projekt to nemalo vplyv.

https://www.youtube.com/watch?v=GitPWH0RybQcitovat
#043248
kabaka
https://www.youtube.com/watch?v=8RnOrEbOyR4

Tak som to celé zjednodušila.
Podľa tohto linku som si natvrdo vytvorila šablónu.
Do outlooku som hodila makro na vyvolanie šablóny.
A vytiahla tlačidlo.

Účel splnený. Považujem za vyriešené.

Sub mail()
Set msg = Application.CreateItemFromTemplate("C:\Users\meno\AppData\Roaming\Microsoft\Templates\template.oft")
msg.Display
End Sub
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje