Aufzählung / Listformat

Moderator: ModerationP

Aufzählung / Listformat

Beitragvon genossealex » 29. Nov 2020, 18:30

Hi, ich brauche mal eure Hilfe bei einer Aufzählung.

Code: Alles auswählen
    Dim xt40 As String, xt41 As String, xt42 As String, xt43 As String, xt44 As String, xt45 As String, xt46 As String
    xt40 = "Text1"
    xt41 = "Text2"
    xt42 = "Text3"
    xt43 = "Text4"
    xt44 = "Text5"
    xt45 = "Text6"
    xt46 = "Text7"


    If UserForm1.CheckBox13.Value = True Then
        xt54 = xt40 & Chr(10) & xt41 & Chr(10) & xt42 & Chr(10)
        Else
    End If

    If UserForm1.CheckBox14.Value = True Then
        xt54 = xt43 & Chr(10) & xt44 & Chr(10) & xt45 & Chr(10) & xt46
        Else
    End If

ActiveDocument.SelectContentControlsByTitle("Einfügebereich").Item(1).Range.Text = xt54


Der gewählte Text wird in ein "Rich-Text-Steuerelement" eingefügt.
xt44-46 sollen als Aufzählung dargestellt werden.
genossealex
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 15
Registriert: 05. Feb 2020, 13:38

Re: Aufzählung / Listformat

Beitragvon Hilfloser Bastler » 29. Nov 2020, 21:57

Hallo Genosse,

das einfache Aufzeichnen eines Klicks auf die Formatvorlage Aufzählungszeichen hat folgenden Code ausgepuckt, den man sicher auf wenige Zeilen eindampfen kann.

Code: Alles auswählen
Sub Makro1()
'
' Makro1 Makro
'
'
    With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = ChrW(61623)
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleBullet
        .NumberPosition = CentimetersToPoints(0.63)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.27)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = "Symbol"
        End With
        .LinkedStyle = ""
    End With
    ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior
End Sub

Durch Auskommentieren lässt Du einfach weg, was nicht wirklich zu sichtbarer Wirkung führt. Ich würde z.B. mit allen Font-Eigenschaften anfangen die =wdUndefined sind. Dann kann das aber möglicherweise nicht mehr in jeder Word-Installation laufen, soweit das überhaupt gewünscht ist.

Mein zweiter Ansatz wäre Deine xt40 ...46 in eine bzw. zwei For ... Next-Schleife(n) zu packen. Statt jede Variable einzeln zu deklarieren machst Du z.B.aus xt40 xt4 & i (i = die Integer, die Du als Zähler beginnend bei 0 deklarierst), füllst die Variablen mit Texten aus einem Array und kannst dann auch die Formtierung pro Durchgang setzen.

Viel Erfolg wünscht

d'r Bastler
Selbst Heiden glauben an min. 10% Mystik in der EDV! Gilt auch für mein Win 10 pro/Office 2019 ProPlus und alle VBAsteleien ...
Inzwischen finde ich meinen Nutzernamen ziemlich doof. Denn eines ist sicher: Hilflos bleibt man hier nicht - Dankeschön!
Benutzeravatar
Hilfloser Bastler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 380
Registriert: 15. Jan 2015, 16:13
Wohnort: VBAsteln makes the world go around


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast