Tagword

Opmaak van alle tabellen in een WORD-DOCUMENT met VBA

O

Bij de opmaak van een oud document wilde ik alle tabellen opmaken. Het document bevatte echter honderden tabellen. Er lijkt op het eerste zicht geen eenvoudige manier te zijn om alle tabellen te selecteren en die van een opmaak te voorzien.

Daarom schreef ik dit stukje VBA-code, waar jullie misschien ook iets aan hebben?

  Dim objDoc As Document
  Dim objTable As Table
 
' Dit versnelt het proces aanzienlijk! 
  Application.ScreenUpdating = False
 
  Set objDoc = ActiveDocument
  With objDoc
' Alle tabellen dus
    For Each objTable In .Tables
'Een doorlopende lijn aan de buitenkant, een stippellijntje aan de binnenkant
      objTable.Borders.InsideLineStyle = wdLineStyleDot
      objTable.Borders.OutsideLineStyle = wdLineStyleSingle
' Eerste rij krijgt een zwarte achtergrond én vette tekst.
      objTable.Rows(1).Range.Bold = True
      objTable.Rows(1).Range.Shading.BackgroundPatternColor = wdColorBlack
    Next
  End With

MS Word: “Afstand voor” bij het begin van een pagina

M

“Ik heb veel geleerd van mijn leerkrachten, meer nog van mijn kameraden maar het meest van mijn leerlingen.” Zo vroeg één van mijn leerlingen waarom de ingestelde “afstand voor” bij een alinea bij haar niet bleek te werken. Ik kon niet onmiddellijk een antwoord geven maar nu dus wel 🙂

Voor alle duidelijkheid, het gaat over deze instelling:

go1

Wanneer je die instelling toepast op een alinea dan krijg je normaal gezien dit resultaat:

go2

Maar als die alinea zich bovenaan een pagina bevindt dan wordt die instelling NIET toegepast. (zie onderstaand resultaat).  Het maakt niet uit hoe het komt dat die alinea bovenaan de pagina komt te staan: gewoon “per ongeluk”, door een manueel pagina-einde ervoor, … als de alinea bovenaan een pagina staat wordt de “afstand voor” niet toegepast. Van zodra de alinea weer wat opschuift en ergens “midden in” een pagina komt wordt de “afstand voor” onmiddellijk wel terug toegepast.

Opgelet: wanneer een alinea bovenaan de eerste pagina van het document staat dan wordt de “afstand voor” wel toegepast.  Dit alles is trouwens geen “fout” in Word, volgens Microsoft is het “de bedoeling”.

go3

Maar wat als je absoluut “afstand voor” een alinea wenst, ook al staat die alinea bovenaan een pagina? Je kan net voor die alinea een extra alinea invoegen (zonder inhoud) of je kan “gebruik” maken van een uitzondering. Wanneer een alinea bovenaan een pagina komt te staan door een “sectie-einde” er net voor dan zal de “afstand voor” wel toegepast worden.

Vragen of opmerkingen? Je weet me te vinden.

Schooljaar als veldcode in MS Word 2013

S

Voor al mijn taken, toetsen, examens gebruik ik een Word sjabloon waar in de koptekst oa. het schooljaar (vb. 2014-2015) staat vermeld. Meer dan eens vergeet ik het schooljaar te updaten en dan denken leerlingen dat het om een toets/taak van een vorig schooljaar gaat.

Ik was al een tijdje op zoek naar een veldcode die ervoor zorgt dat het schooljaar zichzelf automatisch update en die heb ik nu gevonden.

{IF { DATE \@ “MM” } <= 8}
{={DATE \@ “YYYY”}-1}{DATE \@ “YYYY”}
“{{DATE \@ “YYYY”}={DATE \@ “YYYY”}+1}“}

De basis van het veld is een IF constructie. Het rode gedeelte is de conditie.

Als de huidige maand kleiner is dan, of gelijk aan 8 (augustus) (de WAAR tak) dan zitten we in de tweede helft van het schooljaar (januari tot juni). In die situatie bestaat het schooljaar uit het VORIG kalenderjaar (groene code) en het huidig kalenderjaar (paarse code).

Als de huidige datum groter is dan 8 (de NIET WAAR tak) dan zitten we in het eerste deel van het schooljaar (september tot december). In die situatie bestaat het schooljaar uit het huidige kalenderjaar (blauwe code) en het volgende kalenderjaar (roze code).

Een schooljaar bestaat dus telkens uit twee getallen (vb. 2014 2015) van elkaar gescheiden door een koppelteken. Het koppelteken zie je telkens in het zwart staan.

Opgelet: 

Onze IF constructie heeft een “WAAR” taak en een “NIET WAAR” tak, elke tak bevat meerdere veldcodes en moet daarom omsloten worden door aanhalingstekens (“).

Voor en na “<=” (in de conditie) MOET een spatie staan, anders werkt je conditie niet goed.

Bij het openen van je document wordt de veldcode niet automatisch geupdate, als het dus om een document gaat van jaren geleden dan blijft daar het oude schooljaar staan. Probleem? Neen! De veldcodes worden wel automatisch geupdate op het ogenblik dat je het document afdrukt of exporteert naar PDF.

Vragen of opmerkingen over dit artikel? Of wil je meer weten over veldcodes? Contacteer mij gerust!

Word document met veldcode die schooljaar toont

Laatste berichten