MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft PowerPoint
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 19.04.2017, 11:37   #1
Master_MP
MOF User
MOF User
Standard VBA - Textfeld geeignet formatieren

Hallo zusammen,

ich würde mir gerne aufgrund des gleichen Aufbaus mehrerer Textfelder, die ich automatisiert mit Makros befülle, auf eine bestimmte Art und Weise formatieren:

Überschrift
  • Luftwiderstandsbeiwert: Test
  • Stirnfläche: Noch ein Test
  • Leergewicht Fzg: Vielleicht noch ein Test
  • Konfig der Batterie: Wert

Dazu fehlen mir allerdings die notwendigen Befehle und das know-how. Könnt ihr mir da vielleicht weiterhelfen?

Bis jetzt habe ich das als Codeschnipsel:

Code:

        .Text = "Luftwiderstandsbeiwert: " & EM_L & Strings.Chr(13) & Strings.Chr(10) _
              & "Stirnfläche: " & EM_V & Strings.Chr(13) & Strings.Chr(10) _
              & "Leergewicht Fzg: " & EM_I & Strings.Chr(13) & Strings.Chr(10) _
              & "Konfig der Batterie: " & nameKonf

(...)

        With .Characters(Start:=1, Length:=5).Font
            .Bold = msoTrue
            .Color.RGB = RGB(0, 0, 0) 'Schwarz
        End With
        With .Characters(Start:=6, Length:=10).Font
            .Bold = msoFalse
            .Color.RGB = RGB(255, 0, 0) 'Rot
        End With
Wie baue ich mir jetzt am Besten mein Textfeld so wie ich es möchte? Also wie ist der richtige Code dafür?

Danke und liebe Grüße,
Mark
Master_MP ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.04.2017, 23:12   #2
Weltbuerger
Neuer Benutzer
Neuer Benutzer
Standard

Hi,

weiß nicht ob das der beste Weg ist, weil ich auch nicht der Oberexperte bin, aber ich hab mal ein bisschen rumgespielt:

Code:

'9 Textvariablen h(eading), k(ategorie)1-4 und t(ext)1-4
Dim h, k1, k2, k3, k4, t1, t2, t3, t4 As String

h = "Überschrift"
k1 = "Luftwiderstandsbeiwert: "
k2 = "Stirnfläche: "
k3 = "Leergewicht Fzg: "
k4 = "Konfig der Batterie: "
t1 = "Test"
t2 = "Noch ein Test"
t3 = "Vielleicht noch ein Test"
t4 = "Wert"

'Ermittlung 1. Buchstabe (f) und Länge (l) der 9 Strings
Dim fh, lh, fk1, lk1, fk2, lk2, fk3, lk3, fk4, lk4, ft1, lt1, ft2, lt2, ft3, lt3, ft4, lt4 As Integer

fh = 1
lh = Len(h)
fk1 = fh + lh + 1
lk1 = Len(k1)
ft1 = fk1 + lk1
lt1 = Len(t1)
fk2 = ft1 + lt1 + 1
lk2 = Len(k2)
ft2 = fk2 + lk2
lt2 = Len(t2)
fk3 = ft2 + lt2 + 1
lk3 = Len(k3)
ft3 = fk3 + lk3
lt3 = Len(t3)
fk4 = ft3 + lt3 + 1
lk4 = Len(k4)
ft4 = fk4 + lk4
lt4 = Len(t4)

'Debug.Print fh, lh, fk1, lk1, fk2, lk2, fk3, lk3, fk4, lk4, ft1, lt1, ft2, lt2, ft3, lt3, ft4, lt4

With ActivePresentation.Slides(1).Shapes("Textfeld 4").TextFrame.TextRange
    
'Default
.Font.Underline = msoFalse
.Font.Bold = msoFalse
.Font.Color.RGB = RGB(0, 0, 0)
    
    .Text = h & Strings.Chr(13) & Strings.Chr(10) & Strings.Chr(13) & Strings.Chr(10) _
            & k1 & t1 & Strings.Chr(13) & Strings.Chr(10) _
            & k2 & t2 & Strings.Chr(13) & Strings.Chr(10) _
            & k3 & t3 & Strings.Chr(13) & Strings.Chr(10) _
            & k4 & t4
    
    'Zunächst wird der Gesamttext formatiert, Einrücken+Schriftgröße
    .IndentLevel = 2
    .Font.Size = 9.5
    '.Font.Name = "Arial"
    
    'Aufzählung
    With .ParagraphFormat.Bullet
    .Visible = True
    
    'Aufbauend auf dem Code von letzter Woche Quadrate, ggf. anpassen
    .Character = 167
    .Font.Name = "Wingdings"
    
    '.RelativeSize = 1
     
    End With
    
    'Formatierung 4x fett
    .Characters(fk1, lk1).Font.Bold = msoTrue
    .Characters(fk2, lk2).Font.Bold = msoTrue
    .Characters(fk3, lk3).Font.Bold = msoTrue
    .Characters(fk4, lk4).Font.Bold = msoTrue
    
    'Formatierung 1x rot
    .Characters(ft3 + 1, lt3).Font.Color.RGB = RGB(255, 0, 0)
    
    'Formatierung heading
    With .Characters(fh, lh)
    .ParagraphFormat.Bullet.Visible = False
    .IndentLevel = 1
    .Font.Size = 11
    .Font.Bold = msoTrue
    .Font.Underline = msoTrue
    End With
    
End With
VG
Weltbürger

Geändert von Weltbuerger (19.04.2017 um 23:16 Uhr).
Weltbuerger ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.04.2017, 08:54   #3
Master_MP
Threadstarter Threadstarter
MOF User
MOF User
Standard

Genial, danke!

Da ich das so für verschiedene Textboxen hinbekommen muss, brauche ich ja jetzt nur noch eine Funktion mit deinem Code zu schreiben und an diese dann immer die jeweiligen Variablen zu übergeben.

Daran werde ich mich dann heute versuchen!

Vielen Dank für deine Hilfe, auch für die gute Kommentierung, so dass ich mir den Rest jetzt selber zusammenbasteln kann!
Master_MP ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.