Thema Datum  Von Nutzer Rating
Antwort
Rot Label indexiert ansprechen in einem Dokument
01.10.2020 08:11:52 Michi
NotSolved
01.10.2020 09:07:56 Mase
NotSolved
01.10.2020 09:25:50 Gast36365
NotSolved
01.10.2020 10:48:04 Mase
NotSolved
01.10.2020 11:08:08 Michi
NotSolved
01.10.2020 12:34:36 Mase
NotSolved
01.10.2020 13:58:52 Michi
NotSolved
01.10.2020 15:03:09 Mase
*****
Solved
01.10.2020 15:36:17 Michi
NotSolved

Ansicht des Beitrags:
Von:
Michi
Datum:
01.10.2020 08:11:52
Views:
727
Rating: Antwort:
  Ja
Thema:
Label indexiert ansprechen in einem Dokument

Hallo

ich möchte gerne in einem Word-Dokument verschiedene Labels indexiert ansprechen.

Das Ziel der Sub ist, dass die gröstmögliche Schrift unter beibehaltung der Grösse in ein Label eingetragen wird.

Die Labels sind auf einem Dokument und nicht in einer Userform!

Mein Vorgehen: Erst lese ich die aktuelle Grösse des Labels aus, dann trage ich eine grosse Schrift (hier x=60, Schriftgrösse 60) ein. Dann vergleiche ich die Grösse des Labels mit dem Anfangswert und verkleinere die Schrift schrittweise bis die Grösse wieder passt.

 

Die übergebenen Variabeln sind:

i als indexzähler für die Labels

Eintrag ist der String, der in das Label eingetragen werden soll.

 

Der Code stoppt bei der Zeile: With Controls("ThisDocument.Label"&i) da er das Objekt nicht findet

Wie muss ich das Label ansprechen? Bin leider nur Anfänger in VBA und wäre froh, wenn mir jemand helfen könnte! Vielen Dank

 

Private Sub DynLabelSize(ByRef i As Integer, ByRef Eintrag As String)
x = 60                                  'AnfangsSchriftgrösse

With Controls("ThisDocument.Label" & i)
    maxBreite = .Width                  'ursprüngliche Breite als max festlegen
    maxHöhe = .Height                   'ursprüngliche Höhe als max festlegen
    .Font.Size = x                      'Schriftgrösse setzen
    .AutoSize = True
    .WordWrap = False
    .Caption = Eintrag                  'Label füllen
        Do While .Width > maxBreite     'loop solange Label zu breit
            x = x - 1                   'Schriftgrösse um 1 verkleinern
            .Font.Size = x              'Schriftgrösse setzen
        Loop
        Do While .Height > maxHöhe      'wie oben aber mit LabelHöhe
            x = x - 1
            .Font.Size = x
        Loop
    .AutoSize = False
    .Width = maxBreite                  'ursprüngliche Breite wieder herstellen
    .Height = maxHöhe                   'ursprüngliche Höhe wieder herstellen
End With
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Label indexiert ansprechen in einem Dokument
01.10.2020 08:11:52 Michi
NotSolved
01.10.2020 09:07:56 Mase
NotSolved
01.10.2020 09:25:50 Gast36365
NotSolved
01.10.2020 10:48:04 Mase
NotSolved
01.10.2020 11:08:08 Michi
NotSolved
01.10.2020 12:34:36 Mase
NotSolved
01.10.2020 13:58:52 Michi
NotSolved
01.10.2020 15:03:09 Mase
*****
Solved
01.10.2020 15:36:17 Michi
NotSolved