[VBS] Opmaak van tekst in worddocument

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • RobTweaks
  • Registratie: Maart 2011
  • Laatst online: 22-08 09:06

RobTweaks

Captain Hindsight

Topicstarter
Beste tweakers,

sinds enkele dagen houdt ik mij bezig met het schrijven van een script voor het automatisch ophalen en formatten van data uit de AD voor handtekeningen in Outlook. Gek genoeg lukt alles, behalve dat wat het meest simpel van al lijkt, de opmaak.

In het script maak ik gebruik van een speciaal gekozen font, lettergrootte en kleur. De kleur klopt, de titel is bold (zoals deze hoort te zijn) en de totale tekst heeft een lettergrootte van 8. Dit klopt echter niet, ik geef continue aan dat de lettergrootte van bepaalde stukken 10, of 11 moet zijn. Soms lukt het om een deel van de tekst in een andere grootte te krijgen, toch ontdek ik op de een of andere manier de logica niet... Kan iemand mij verder op weg helpen?

VBScript: outlook-script.vbs
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
objSelection.Font.Name = "ConduitITCStd Light"
  objSelection.Font.Color = RGB(34,72,119)
  objSelection.Font.Bold = true
  objSelection.Font.Size = "11"
  if (strCred) Then objSelection.TypeText strName & ", " & strCred Else objSelection.TypeText strName
   objSelection.Font.Name = "ConduitITCStd Light"
   objSelection.Font.Color = RGB(34,72,119)
   objSelection.Font.Bold = true
   objSelection.Font.Size = "11"

    objSelection.TypeText Chr(11)
  
    objSelection.Font.Name = "ConduitITCStd Light"
    objSelection.Font.Color = RGB(34,72,119)
    objSelection.Font.Bold = false
    objSelection.Font.Size = "10"
    objSelection.TypeText strTitle
    objSelection.TypeText Chr(11)
    objSelection.Font.Bold = false  
    
    if (strPhone) Then objSelection.TypeText strPhone
    if ((len)(strMobile)) AND ((len)(strPhone)) Then objSelection.TypeText Chr(11)
    if (strMobile) Then objSelection.TypeText (strMobile)
    if (strfax) Then objSelection.TypeText Chr(11)
    if (strFax) Then objSelection.TypeText (strFax)
    objSelection.TypeText Chr(11)
    
    objSelection.Font.Name = "ConduitITCStd Light"
    objSelection.Font.Size = "10"
    objSelection.Font.Color = RGB(34,72,119)
    Set objLink = objSelection.Hyperlinks.Add(objSelection.Range, "mailto: " & strEmail, , , strEmail) 

"Rock is overpowered. Paper is fine" -Scissors-


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • RobTweaks
  • Registratie: Maart 2011
  • Laatst online: 22-08 09:06

RobTweaks

Captain Hindsight

Topicstarter
Mijn excuus, ik had beter moeten opletten. Bedankt voor het verplaatsen!

Heeft niemand een idee?

[ Voor 15% gewijzigd door RobTweaks op 26-02-2012 15:18 ]

"Rock is overpowered. Paper is fine" -Scissors-


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik zie op regel 67 iig twee syntaxfouten: (len)(strPhone) kan niet goed zijn. Daarnaast heb ik grote twijfels bij regel 50: if (strCred).
Afgezien daarvan: je opmaak wordt toegepast op het objSelection object, en ik zie nergens dat de net ingevoegde tekst wordt toegevoegd aan dat object. De opmaak wordt dan alleen ingevoegd en geldt dan alleen voor die positie.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • renelis
  • Registratie: November 2003
  • Laatst online: 10:52
font.size = 10
lijkt niet te werken in Outlook, ik zit namelijk met hetzelfde probleem en kan het in elk willekeurig formaat wijzigen ... behalve 10

Hoop dat iemand hier meer over weet?

https://www.strava.com/athletes/4819403


Acties:
  • 0 Henk 'm!

  • RobTweaks
  • Registratie: Maart 2011
  • Laatst online: 22-08 09:06

RobTweaks

Captain Hindsight

Topicstarter
renelis schreef op dinsdag 28 februari 2012 @ 10:24:
font.size = 10
lijkt niet te werken in Outlook, ik zit namelijk met hetzelfde probleem en kan het in elk willekeurig formaat wijzigen ... behalve 10

Hoop dat iemand hier meer over weet?
Klopt, in Calibri lukt het dan weer wel.

Bedankt lustucru, die foutjes ga ik even verbeteren. Heb je misschien ook een voorbeeld bij je uitleg? Het object is toch objSelection.TypeText strName, waaraan ik de opmaak toevoeg?

Op regel 48 geef ik bijvoorbeeld objSelection.Font.Bold = true en dat gaat wel zoals verwacht!

Alvast bedankt!

[ Voor 8% gewijzigd door RobTweaks op 28-02-2012 10:58 ]

"Rock is overpowered. Paper is fine" -Scissors-


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Nou nee, je voegt een opmaak in. Het verschil tussen:
code:
1
2
3
4
5
6
7
8
9
selection.text="foo"
selection.bold = true
--> foo wordt vet

of 

selection.typetext "foo"
selection.bold=true
--> alles wat na foo komt wordt vet

Maar de fout zit in font.size="10". Font size is een single, geen string. ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • RobTweaks
  • Registratie: Maart 2011
  • Laatst online: 22-08 09:06

RobTweaks

Captain Hindsight

Topicstarter
Lustucru schreef op dinsdag 28 februari 2012 @ 20:46:
Nou nee, je voegt een opmaak in. Het verschil tussen:
code:
1
2
3
4
5
6
7
8
9
selection.text="foo"
selection.bold = true
--> foo wordt vet

of 

selection.typetext "foo"
selection.bold=true
--> alles wat na foo komt wordt vet

Maar de fout zit in font.size="10". Font size is een single, geen string. ;)
Ja, op beide punten heb je gelijk. Dat font-size geen string is is logisch, ook al werkt het ook met de aanhalingstekens (gek genoeg). Die aanhalingstekens ga ik weghalen |:( .

Dat objectselection zo werkt als dat het werkt dat wist ik wel, maar ondanks dat kreeg ik het niet voor elkaar om de juiste opmaak toe te passen. Op een gegeven moment heb ik op zoveel mogelijk plekken die opmaak erbij gezet om te kijken of er uberhaupt iets zou gebeuren. Het lijkt erop dat de fontsize 10 echt niet mogelijk is, 10,5 werkt namelijk prima en het script is onderhand uitgerold.

Renelis, wil jij een kopie van mijn script? Misschien kan je er nog wat mee. Je kan mij altijd DM'en.

Nogmaals bedankt voor het meedenken!

"Rock is overpowered. Paper is fine" -Scissors-


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
robtaal schreef op dinsdag 28 februari 2012 @ 21:13:
Ja, op beide punten heb je gelijk. Dat font-size geen string is is logisch, ook al werkt het ook met de aanhalingstekens (gek genoeg).
Da's niet gek, dat heb je te danken aan VBA's implicit type casting ;)
robtaal schreef op dinsdag 28 februari 2012 @ 21:13:
Renelis, wil jij een kopie van mijn script? Misschien kan je er nog wat mee. Je kan mij altijd DM'en.
Als je nou iedereen even een plezier doet en (de relevante(!!)) delen even hier post dan hebben andere mensen die in de toekomst met de search/google/whatever op dit topic stuiten er ook nog iets aan ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

robtaal schreef op dinsdag 28 februari 2012 @ 21:13:
[...]

Ja, op beide punten heb je gelijk. Dat font-size geen string is is logisch, ook al werkt het ook met de aanhalingstekens (gek genoeg). Die aanhalingstekens ga ik weghalen |:( .
Wat Rob zegt: VBA is nogal vergevingsgezind mbt typecasting, maar blijkbaar niet in alle versies even nauwkeurig. Bij mij werkte iig "10" niet, dwz het deed niks, terwijl 10 wel het gewenste resultaat had, ook bij dit font. Dat is dan weer wel raar. 8)7

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • RobTweaks
  • Registratie: Maart 2011
  • Laatst online: 22-08 09:06

RobTweaks

Captain Hindsight

Topicstarter
RobIII schreef op dinsdag 28 februari 2012 @ 22:00:
[...]

Da's niet gek, dat heb je te danken aan VBA's implicit type casting ;)


[...]

Als je nou iedereen even een plezier doet en (de relevante(!!)) delen even hier post dan hebben andere mensen die in de toekomst met de search/google/whatever op dit topic stuiten er ook nog iets aan ;)
Met betrekking tot dit probleem is er geen relevante code om te posten. Het probleem is niet zozeer opgelost, er is gewoon gekozen voor een andere lettergrootte. Zodra ik een tweakblog kan openen zet ik daar al mijn bevindingen rondom het scripten en standaardiseren van handtekeningen in Outlook.

Het volledige script kan ik in deze vorm niet door iedereen worden gebruikt, aangezien het heel sterk is aangepast aan de behoeften van een specifieke partij. Het is enkel handig als opzet voor een eigen script door kleine stukjes code te knippen en plakken en dus zeker niet relevant voor dit vraagstuk. Vandaar dat het wellicht interessant is voor een enkeling die hier toch al mee bezig is.

Bedankt voor het meedenken in ieder geval!

"Rock is overpowered. Paper is fine" -Scissors-

Pagina: 1