3.2k Aufrufe
Gefragt in Textverarbeitung von
Hallo,
ich habe ein Problem. Ich habe (endlich) ein Makro gefunden, dass auch funktioniert und mein Problem in Word löst. Ich wollte erreichen, dass sich die Schriftgröße in einem Textfeld automatisch an das Textfeld anpasst.
Nun sollte dieses Makro aber automatisch ausgeführt werden, sobald eine Änderung vorgenommen wird ( in diesem Fall, ein neues Etikett im Seriendruck aufgerufen wird).
Ich habe keine Ahnung was ich tun muss damit das funktioniert. Kann mir jemand weiterhelfen?

Hier mein Makro:

Sub fontsize()
'
' fontsize Makro
'
'
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
If shp.TextFrame.HasText = True Then
With shp.TextFrame
' erst hochskalieren, falls die Textbox nicht ausgefüllt wird
Do While .Overflowing = False
.TextRange.Font.Size = .TextRange.Font.Size + 1
Loop
' herunterskalieren, falls die Textbox überfüllt wird
Do While .Overflowing = True And .TextRange.Font.Size > 8
.TextRange.Font.Size = .TextRange.Font.Size - 1
Loop
End With
End If
Next shp
End Sub


Danke herzlich im Voraus für eure Hilfe .

7 Antworten

0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Änderung vorgenommen wird ( in diesem Fall, ein neues Etikett im Seriendruck aufgerufen wird).

Bei normalem Formularen sollte das einfach sein da Formularfelder Auto-Funktionen (Ereignismakros) für Verlassen kennen.

Technisch müsste man das aber gleich bei einem Change-Ereignis anstoßen, das wäre stringenter.

Ob aber in Seriendruckdokumenten die Felder diese Funktionalität kennen (und erst Recht nicht beim Hinzufügen) - da hätte ich arge Zweifel.

Eric March

PS: Welches Word?
0 Punkte
Beantwortet von
Hallo Eric,

danke für deine Antwort. Ich hab mir fast gedacht, dass es weit komplizierter ist, als ich mir das vorgestellt habe.. Ich habe word 2010
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Vielleicht habe ich da auch ein Wort missverstanden.

Aufrufen eines neuen Etiketts - das würde ich nun so interpretieren, dass du schlich zum nächsten freien wechselst.

Auf der anderen Seite - bei Seriendruck wechselt man allgemein nirgendwohin sonder lässt, meist aus Excel heraus, die Daten von Word automatisch ausfüllen. Und in diese ›Tür‹ bekommst du keine Fuß - du erhältst ein fertiges, Druckbares Dokument (ohne Felder, würde ich mal sagen - wenn nicht das Quelldokument solche Formularfelder enthält) bei dem ein Makro sich wohl die Zähne ausbeißt.

Dein Plan scheint schon ganz zu Beginn ein Loch zu haben. Wie also soll er denn eigentlich aussehen?

Eric March
0 Punkte
Beantwortet von
Leider genau so. Ich suchte tatsächlich nach einer Lösung die Schriftgröße einiger Etiketten bei Bedarf zu verkleinern (weil zuviel Text), damit ich nicht die Schriftgröße aller Etiketten so stark verkleinern muss, dass es für jede Schriftmenge passt.

Ich hatte auch schonmal den Plan die Schriftgrößen aus Excel zu übernehmen, bin aber gescheitert, weil ich nichts gefunden habe, um unterschiedliche Schriftgrößen zu importieren. Nur Mergefield-Felder für je eine Größe.
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Ich lüge dich jetzt an, aber bei Serien›brief‹ gilt, dass nur die Word-Formatierung greift. Und das quasi ‹einmalig› (du weißt was ich meine).

Je nach Menge wäre ein Formular vorstellbar das über gewisse Winkelzüge aus z.B. CSVs die Excel ablegt oder über Excel-Fernsteuerung (vermutlich auch nicht handlicher) Daten zu holen und in de Schein-Etiketten einzusetzen wo dann dein Makro (ein)greifen kann. Bei einer Seite Etiketten geht das sicher, bei 500 die in einem Zuge anfallen… Automatisiertes Drucken aus Word diese Formulars wiederholt… Nicht komfortabel aber bastelbar.

Eric March
0 Punkte
Beantwortet von
Vielen Dank für deine Hilfe.

Ich denke, dass wird zu kompliziet. So wichtig ist die Sache dann doch nicht.

Aber wie gesagt, wirklich danke für deine Mühe und Hilfe :)
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
«Wenn Denken schon Mühe ist - was soll dann Tun sein?» ;-)
Quelle unbekannt.

Eric March
...