Avatar billede Tfw401 Praktikant
14. september 2023 - 15:13 Der er 1 kommentar

Automatisk felt med antal tegn (ekskl. forside, indholdsfortegnelse etc.)

Hej!
Jeg ved ikke, om det er muligt, men jeg har mange gange undret mig over, om der er en måde at få Word til at generere et automatisk felt, der viser antal tegn (med mellemrum) i dele af ens dokument.
Altså hvor f.eks. forside, indholdsfortegnelse, litteraturliste og eventuelle bilag ikke medregnes.

I forbindelse med opgaver på uni, skal antal tegn altid fremgå på forsiden, men dette indbefatter naturligvis ikke ovenstående elementer. Hvis man kan afgrænse hvilke sidetal, den skal tælle tegn på, ville det derfor løse problemet.
Jeg har forsøgt med felt > DocProperty og så tilføjet CharactersWithSpaces, men kan ikke finde et sted, hvor jeg kan afgrænse til dele af dokumentet.

Jeg bruger forresten Office 365 på Mac.

På forhånd tak for hjælpen :)
Avatar billede Lene Fredborg Ekspert
14. september 2023 - 22:44 #1
Du kan ikke med et enkelt felt tælle tegn i en del af et dokument. Og sider i Word er ikke brugbare til den slags, da en tekst i Word reelt er en lang, fortløbende sag, som ombrydes til sider afhængigt at printer m.m. Men du kan f.eks. løse det med et DocProperty-felt og to bogmærker + en makro:

1.    Indsæt et bogmærke (uden at markere tekst) der hvor optælling skal starte – i makroen nedenfor har jeg kaldt det bogmærke ”CountCharactersStart”.

2.    Indsæt et andet bogmærke (uden at markere tekst) der hvor optælling skal slutte – i makroen nedenfor har jeg kaldt det bogmærke ”CountCharactersEnd”.

3.    Opret en brugerdefineret dokumentegenskab (custom document property) – her kaldt ”CountCharacters” – du kan indledningsvis skrive en vilkårlig værdi (f.eks. XXX).

4.    Indsæt et DocProperty-felt på forsiden, som henter værdien af ”CountCharacters”, der hvor antal tegn skal vises. Feltkoden vil være:
{ DOCPROPERTY "CountCharacters" }

Installer følgende makro og kør den, når tallet på forsiden skal opdateres. Makroen tæller tegn mellem de to bogmærker, opdaterer værdien af ”CountCharacters” til det udregnede tal og opdaterer felter, så værdien på forsiden bliver opdateret.

-----------MAKRO START-----------
Sub CountCharactersBetweenBookmarks_InsertInDocPropertyOnFrontPage()
    Dim lngCountStart As Long
    Dim lngCountEnd As Long
   
    With ActiveDocument
        lngCountStart = .Bookmarks("CountCharactersStart").Start
        lngCountEnd = .Bookmarks("CountCharactersEnd").Start
       
        .CustomDocumentProperties("CountCharacters").Value = lngCountEnd - lngCountStart
        .Range.Fields.Update
    End With
End Sub
-----------MAKRO SLUT-----------

Bemærk: Sørg for ikke at slette bogmærkerne og sørg for, at de kun angiver en position og ikke indeholder tekst (hvis du redigerer tekst lige omkring, hvor bogmærkerne er, så tjek, om de fortsat er OK).

Makroen kan udbygges med fejlhåndtering, som tjekker, at bogmærkerne findes osv.

I stedet for bogmærker kunne der også laves en løsning, hvor start og slut for optælling afgrænses af f.eks. sektionsskift – vil kræve anden makro.

Følgende info er skrevet til PC, ikke Mac – men du kan nok omsætte det til Mac:
Åbn dialogboksen Bogmærke/Bookmark: Ctrl+Shift+F5.
Info om custom document properties: https://www.thedoctools.com/wordtips/gentage-tekst-i-word/
Hjælp til at installere makro: https://www.thedoctools.com/word-macros-tips/general/how-to-install-a-macro/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester