Lieber Marius,
Deinen Beitrag finde ich ganz und gar nicht unvollkommen, sondern vollkommen passend in zweierlei Hinsicht. Erstens trifft es zu, dass die "Ein-Wort-Bedienung" nicht intuitiv ist und mit dem sonstigen Gebrauch von Befehlen nicht im Einklang steht, zweitens schneidest Du damit ein Thema an, wenn auch implizit, welches ich ohnehin noch vorhatte zu behandeln, nämlich wie können wir die eigenen Befehle nach Art der Natürlichen Sprachbefehle einrichten, in der Weise, dass wir verschiedene Varianten für ein und dieselbe Aktion zur Verfügung haben, und all das an zentraler Stelle.
Zu diesem Zweck habe ich also das vorstehende Skript noch einmal umgeschrieben, und möchte dabei zugleich einige Techniken vorstellen, die möglicherweise auch für andere interessant sind. Nicht zuletzt verfolge ich aber auch das Ziel, die Vorzüge der professionellen Versionen in den Punkten, wo sie wirklich vorhanden sind, zu demonstrieren und vielleicht den einen oder anderen Unentschlossenen dazu bewegen, über einen Umstieg nachzudenken.
Zunächst habe ich die erste Liste um weitere drei Begriffe erweitert, nämlich "Navigation", "Vorschau" und "Aufgaben"– diese jeweils als zusätzliche Varianten für die bereits bestehenden Begriffe. Damit diese im Skript auch richtig zugeordnet werden, müssen nur die jeweiligen Case-Anweisungen entsprechend erweitert werden, nach folgender Syntax:
Case "Aufgabenbereich", "Aufgaben" usw.
Als nächstes habe ich eine zweite Liste definiert mit den Begriffen:
an, anzeigen, ein, einblenden, einschalten aus, ausblenden, ausschalten
Wozu diese dienen sollen, liegt auf der Hand, um sie anwenden zu können, habe ich eine Boolsche Variable zusätzlich definiert, also eine solche, die entweder wahr oder falsch ist, namens "onOff", deren Wert entsprechend festgelegt wird, je nachdem welches der o.g. Elemente verwendet wird.
Um diese beiden Fälle zu unterscheiden, wird wiederum eine Select Case-Anweisung eingesetzt, nach der Form:
Select Case ListVar2 Case "an", "ein", "..." onOff = True usw.
Das Skript ist dadurch nur geringfügig länger geworden, aber ausgesprochen funktionstüchtig. Wenn ich richtig gerechnet habe, stehen damit zugleich 48 verschiedene Einzelbefehle zur Verfügung, mit insgesamt sechs verschiedenen Funktionen.
Das vollständige Skript sieht wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Sub Main Dim myOlApp As New Outlook.Application Dim myOlExp As Outlook.Explorer Set myOlExp = myOlApp.ActiveExplorer Dim myPane As OlPane Dim onOff As Boolean Select Case ListVar1 Case "Aufgabenbereich", "Aufgaben" myPane = olToDoBar Case "Navigationsbereich", "Navigation" myPane = olNavigationPane Case "Lesebereich", "Vorschau" myPane = olPreview End Select Select Case ListVar2 Case "an", "anzeigen", "ein", "einblenden", "einschalten" onOff = True Case "aus", "ausblenden", "ausschalten" onOff = False End Select If onOff Then myOlExp.ShowPane myPane, True Else myOlExp.ShowPane myPane, False End If Set myOlApp = Nothing Set myOlExp = Nothing End Sub
Viele Grüße, Rüdiger
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
| |