VBA erstes Wort, bzw. erste Zeile in Zelle aus Wordtabelle auswählen?

2 Antworten

Das erste Wort zu erkennen, gelingt Dir mit diesem Makro.
Nach dem ersten Wort kann ein Leerzeichen (32) oder ein Zeilenvorschub (10) folgen. Diese erste Wort wird dann "Fett".

Sub erstesWortFett()
Range("A1").Select 'A1 als aktive Zelle
Tester = Cells(1, 1) 'zu untersuchende Zelle (A1)

For i = 2 To Len(Tester) 'Länge
zz = Mid(Tester, i, 1) 'einzelnes Zeichen
If Asc(zz) = 32 Then Exit For 'wenn Leerzeichen
If Asc(zz) = 10 Then Exit For 'wenn Zeilenumbruch
bis = i 'Zähler (Leerstelle)
Next i
'
With ActiveCell.Characters(Start:=1, Length:=bis).Font
.Name = "Arial"
.FontStyle = "Fett"
End With

End Sub

Reicht das so?

Gruß aus Berlin

Woher ich das weiß:Hobby – Jahrelanges programmieren.
ErstesFett - (programmieren, Microsoft, Microsoft Excel)
Niki8996 
Fragesteller
 10.01.2017, 14:24

Hi Britzcontrol,

danke erstmal für die Antwort!

Leider macht dieses Makro das Wort in Excel fett, ich muss aber den vorher kopierten Wert in der Word-Vorlage fett machen. Funktioniert die Art und Weise wie du es in deinem Makro gemacht hast auch für Word? Dann könnte ich es ein wenig anpassen und hätte meine Lösung :-)

Liebe Grüße und vielen Dank!

0
Britzcontrol  11.01.2017, 09:19
@Niki8996

Also wenn ich von XL den Text (mit dem ersten fetten Wort) nach Word kopiere, bleibt das erste Wort fett.

Makros in Word sind denen in XL grundsätzlich ähnlich, jedoch liegt, zumindest bei mir, das Problem in der Syntax.
Bei XL eine Zelle zu definieren fällt mit nicht schwer. Bei Word das erste Wort einer Zeile zu suchen schon.
Ich habe VBA noch nie in Word eingesetzt, nur geschrieben, aber auch nur dann, wenn ich es mit XL nicht geschafft habe. Sorry.

Gruß aus Berlin

0

Was sagt denn der Makrorekorder, wenn du die Schritte einmal aufzeichnest? Schafft der das nicht?

Woher ich das weiß:Berufserfahrung – Programmierer
Niki8996 
Fragesteller
 10.01.2017, 11:17

Leider zeichnet der nur den Schritt auf, in dem Fett gemacht wird, nicht wie markiert wird:

Sub Makro1() 

Selection.Font.Bold = wdToggle

End Sub

0
Suboptimierer  10.01.2017, 11:36
@Niki8996

Bei mir zeichnet er auch die Selektion von Textbestandteilen auf:

Sub Optimierer()
Range("A1").Select
ActiveCell.FormulaR1C1 = "abc"
'...
With ActiveCell.Characters(Start:=2, Length:=1).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
'...

Range("A2").Select
End Sub


Wenn das nicht hinhauen sollte, splittest du einfach den Text am Chr(13) und machst pro Zeile eine eigene Zelle.

0
Niki8996 
Fragesteller
 10.01.2017, 14:26
@Suboptimierer

Hi nochmal,

das sieht schonmal echt top aus! Leider muss ich aber nicht in der Excel-Tabelle das Wort fett machen, sondern in der Word-Tabelle. Hatte mich etwas unklar ausgedrückt, sorry dafür.

Liebe Grüße und vielen Dank :)

0