Suchen nach einer Textauswahllänge (Microsoft Word)
Wenn Sie Makros schreiben, müssen Sie häufig feststellen, ob der Benutzer eine Auswahl getroffen hat. Es gibt zahlreiche Möglichkeiten, dies in einem Makro zu tun. Der folgende Code zeigt eine mögliche Methode, um dies in VBA zu erreichen. Es setzt den Wert eines Flags, bInSelection, auf True, wenn derzeit eine Auswahl vorhanden ist. Andernfalls wird bInSelection auf False gesetzt.
Dim bInSelection As Boolean bInSelection = False If Selection.Type=wdSelectionIP Then bInselection=True End If
Sie könnten sich fragen, ob Sie einen Ansatz verwenden könnten, um zu überprüfen, ob die Länge der Auswahl größer als Null ist, wie bei dieser Methode:
Dim bInSelection As Boolean bInSelection = False If Len(Selection) > 0 Then bInselection=True End If
Dieser Ansatz wird nicht funktionieren. Der Grund dafür ist, dass Word immer noch eine Auswahllänge von 1 zurückgibt, wenn keine Auswahl getroffen wird (die Einfügemarke ist reduziert und blinkt nur). Dies ist etwas erschwerend, da es keinen logischen Sinn ergibt. Daher müssen Sie die Type-Eigenschaft des Selection-Objekts wie im ersten Beispiel oben überprüfen. Wenn Sie es noch weiter kürzen möchten, können Sie Folgendes verwenden:
Dim bInSelection As Boolean bInselection=(Selection.Type=wdSelectionIP)
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12175) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365. Eine Version dieses Tipps finden Sie für ältere Menüoberfläche von Word hier: