Avatar billede Jan Hansen Ekspert
27. november 2018 - 16:03 Der er 5 kommentarer og
1 løsning

VBA indsætte tekststrenge som punktopstillede

Hejsa

Jeg har en strengvarabel indeholdende flere strenge som skal ende som punktopstillede.

Eks

sTekst= "Jeg er sød" & vbNewline  & "Det er du også"

skal gerne blive til i tekstboksen

.  Jeg er sød
.  Det er du også

Overførslen til tekstboksen har jeg styr på

.Shapes(1).TextFrame.TextRange.Text = sTekst

Jan
27. november 2018 - 16:28 #1
Hej Jan
Hvis du har mulighed for det, så vælg en punktopstilling med dit tegn i den 1. linje i tekstboksen. Så vil den blive brugt på alle linjer, når du sætte teksten ind.

Ellers skal du have fat i Listegalleriet. Det er lidt noget "skrammel" for listerne (punkterne) skifter plads hvis brugerne benytter nogle af dem. Så hvis du vælger en ListeTemplate er det ikke sikker at der bliver brugt det tegn du forventer. Det betyder at du skal definere dit punkttegn når du skriver koden.

Hvis du er nød til at kode det kan du starte med at læse om listegallerier her:
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa223014(v=office.11)

Hvis du starter makro-optageren og vælger en punktopstilling vil Word skrive koden du skal bruge for at ændre punktet.

Håber det hjælper dig på vej.

med venlig hilsen
Birthe Lauridsen
Avatar billede Lene Fredborg Ekspert
27. november 2018 - 16:35 #2
Har du noget at bruge punkterne til i VBA?

I selve dokumentet kan du få anvendt punktopstilling på det indsatte, hvis du i VBA sætter en relevant style (typografi) på den indsatte tekst.

Hvis du udskifter linjen:

        .Shapes(1).TextFrame.TextRange.Text = sTekst

...med følgende:

        With .Shapes(1).TextFrame.TextRange
            .Text = sTekst
            .Style = ActiveDocument.Styles(wdStyleListBullet)
        End With

...vil den indsatte tekst bliver formateret med en rigtig typografi, som er indbygget i alle Word-dokumenter. Den hedder ”List Bullet” i engelsk version og ”Opstilling – punkttegn” i dansk version. Ved at bruge wdStyleListBullet er man uafhængig af sprogversion af Word. Du kan ændre til en anden typografi, hvis du ønsker det. Hvordan typografien wdStyleListBullet ser ud afhænger af definitionen i det enkelte dokument.
Avatar billede Jan Hansen Ekspert
27. november 2018 - 17:18 #3
Hej Birthe

#1 vælg en punktopstilling med dit tegn i den 1. linje i tekstboksen

Det var løsningen.
Skulle bare finpudse min tekststreng så den ikke sluttede med en ny linie.

Troede Publicher og Word arbejdede med tekstbokse på samme måde men det ligner det ikke de gør ved første øjekast.

Tak for hjælpen
28. november 2018 - 09:39 #4
Det var så lidt.
Nej der er lidt forskel. Microsoft har på opkøbt forskellige programmer hen af vejen, så jeg opfatter det som at "kernen" som udgangspunkt har forskellig tankegang. Jeg mener at det kun er Word der har sin oprindelse hos Microsoft.

Med venlig hilsen
Birthe
Avatar billede Jan Hansen Ekspert
28. november 2018 - 12:20 #5
Year fandt løsningen til Publisher:
.Shapes(1).TextFrame.TextRange.InsertAfter newtext:=vbNewLine & rCell.Offset(0, rCell.Value)
.Shapes(1).TextFrame.TextRange.ParagraphFormat.SetListType pbListTypeBullet, "·"

Jan
28. november 2018 - 14:59 #6
:-)
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