 |
Microsoft Office 97: So schreiben Sie Makros mit Doppelfunktion
Um ein m÷glichst zⁿgiges Arbeiten mit Ihren selbstgeschriebenen Makros zu gewΣhrleisten,legen Sie normalerweise fⁿr jedes Makro eine eigene SchaltflΣche in einerder Symbolleisten an. So k÷nnen Sie die Makros bequem mit einem Mausklick starten. Manchmal m÷chte man die vom Makro ausgefⁿhrte Aktion wieder rⁿckgΣngig machen oder den gegenteiligen Effekt erzielen. Das ist etwa beim Vergr÷▀ern und Verkleinern von AbsatzabstΣnden der Fall und beim Vergr÷▀ern und Verkleinern der Zoomansicht. Dann wird ein zweites Makro fΣllig und damit auch eine weitere SchaltflΣche in der Symbolleiste. Wesentlich sinnvoller wΣre es in solchen Situationen jedoch, beide Funktionen mit Hilfe eines einzigen Makros auszufⁿhren in AbhΣngigkeit von einer zusΣtzlich gedrⁿckten Taste. Bei einem Makro zum VerΣndern des Zoomfaktors wⁿrde das somit bedeuten: normalerweise Zoomfaktor vergr÷▀ern, bei gleichzeitig gedrⁿckter [Shift]-Taste verkleinern. Das zu realisieren ist ziemlich einfach; Sie ben÷tigen dafⁿr lediglich den API-Funktionsaufruf »GetAsync KeyState«. Er liefert die ben÷tigte Zusatzinformation beim Start des Makros. Zoomen leichtgemacht: Im Folgenden werden anhand eines Makros zum schrittweisen Vergr÷▀ern und Verkleinern des Zoomfaktors von Word 97 die Funktionsweise und die wichtigsten Befehle eines Makros mit Doppelfunktion erlΣutert. Zuerst ÷ffnen Sie den Visual Basic Editor mit Hilfe der Tastenkombination [Alt] [F11]. WΣhlen Sie dann das Modul, in dem Sie das neue Makro erzeugen wollen, mit einem Doppelklick aus. Im Codefenster aktivieren Sie nun mit Hilfe des rechten oberen Pulldown-Menⁿs den Bereich »(Deklarationen)«. An diese Stelle des Moduls schreiben Sie die im Kasten unter "Deklaration" abgedruckte Zeile. Sie meldet die ben÷tigte API-Funktion im Modul an. Danach springen Sie mit [Strg] [Ende] an das untere Ende des Modulfensters und geben dort den abgebildeten Makrocode ein. Tastatur abfragen: Das Makro wartet zu Beginn in einer kleinen Zeitschleife den eventuellen Tastendruck ab und ermittelt ⁿber den API-Funktionsaufruf den Zustand der relevanten Taste. Die Funktion liefert eine Integerzahl, von der allerdings nur ein einziges Bit von Bedeutung ist. Deshalb wird es mit dem »AND«-Operator ausgefiltert und mit Hilfe der »CBOOL«-Funktion in einen Booleschen Wert also "wahr" oder "falsch" umgewandelt. Fⁿr die in Frage kommenden Tasten [Shift], [Strg] und [Esc] stellt Visual Basic for Applications globale Konstantenbereit, die Sie jederzeit benutzen k÷nnen: »vbKeyShift«,»vbKeyControl« und »vbKey Escape«. SchaltflΣche erzeugen: Bevor Sie das Makro verwenden k÷nnen, mⁿssen Sie dafⁿr noch eine SchaltflΣche in einer Symbolleiste anlegen. Klicken Sie mit der rechten Maustaste auf eine der Symbolleisten und wΣhlen Sie »Anpassen | Befehle«. Nachdem Sie in dem Bereich »Kategorien« den Eintrag »Makros« markiert haben, k÷nnen Sie das neue Makro per Drag-and-drop aus dem »Befehle«-Bereich in die gewⁿnschte Symbolleiste ziehen. Verpassen Sie der SchaltflΣche noch ein geeignetes Symbol und »Schlie▀en« Sie danach das »Anpassen«-Fenster wieder. Das Makro mit Doppelfunktion ist jetzt einsatzbereit. BetΣtigen Sie beim Start des Makros keine Taste, so wird der Zoomfaktor um zehn Prozent vergr÷▀ert. Halten Sie jedoch die [Shift]-Taste wΣhrend des Klicks auf das Makrosymbol gedrⁿckt, so verringert sich der Zoomfaktor um zehn Prozent. Wenn Sie eine andere »Schrittweite« als zehn Prozent wⁿnschen, dann ersetzen Sie die »10« in der Zeile »Const Schrittweite« durch den entsprechenden Wert. Gerhard Frey
|
 |