PDA

Vollständige Version anzeigen : Schalter ein/aus in VBA


Xenia
22.07.2009, 08:52
Hallo,
alle meine Makros, die ich aufnehme und anpasse, landen in einer eigenen Symbolleiste. Das mache ich schon seit Word 2.0 so und es haben sich etliche eigene Makros angesammelt, mit denen ich seit langer Zeit konstant arbeite bis hin zum heutigen Word 2003.

Ein Makro habe ich aber noch nie versucht zu erstellen, weil ich gar nicht weiß, wie das geht. Ich möchte einen Button haben, der umschaltet wie das zB bei Alle Formatierungszeichen einblenden/ausblenden (ich nenne das Symbol immer Bierseidel) der Fall ist.

Ich möchte einen Umschalter haben, der zB von Hochformat auf Querformat umschaltet und dann eingedrückt aussieht. Klickt man wieder drauf, soll er nicht mehr eingedrückt sein, also Standard wäre Einstellung Hochformat.

Hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.

Danke
Xenia

PapaSchlumpf
22.07.2009, 09:27
Hi
das ist nicht so einfach und IMO nur per VBA möglich.

Letztendlich beruht es auf der CommandBarControl-Eigenschaft "State" (Status). Damit kannst du den gedrückten Status des Schaltfläche einstellen.
Und abhängig von diesem Status verzweigt das benötigte Makro für die Seiteneinstellung.

Soweit zum technischen Rahmen - nur ohne VBA-Kenntnis nicht zu realisieren.

Gruß
PS

PapaSchlumpf
22.07.2009, 10:11
so , hab mal etwas gekramt.
Folgende Makros z.B. in die Normal.dot kopieren und das Makro CreateToggleButton ausführen.
Anschließend sollte eine neue Symbolleiste "MOF-Tools" angezeigt werden.
Die Schaltfläche schaltet dann die Seitenorientierung für das Dokument um (Quer-/Hochformat).


<span style=" color:#0000FF; background: #FFFFFF;">Option</span> <span style=" color:#0000FF; background: #FFFFFF;">Explicit</span>
<a HREF='#Index' name='CreateToggleButton' style=" color:#000080; background: #DFDFDF; font: italic bold;">Sub CreateToggleButton() </a>
CustomizationContext = ThisDocument
<span style=" color:#0000FF; background: #FFFFFF;">Dim</span> cbar <span style=" color:#0000FF; background: #FFFFFF;">As</span> CommandBar
<span style=" color:#0000FF; background: #FFFFFF;">Dim</span> ctl <span style=" color:#0000FF; background: #FFFFFF;">As</span> CommandBarButton
<span style=" color:#0000FF; background: #FFFFFF;">On</span> <span style=" color:#0000FF; background: #FFFFFF;">Error</span> <span style=" color:#0000FF; background: #FFFFFF;">Resume</span> <span style=" color:#0000FF; background: #FFFFFF;">Next</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> cbar = CommandBars<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>MOF-Tools<span style=" color:#FF0000; background: #FFFFFF;">"</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">If</span> cbar <span style=" color:#0000FF; background: #FFFFFF;">Is</span> <span style=" color:#0000FF; background: #FFFFFF;">Nothing</span> <span style=" color:#0000FF; background: #FFFFFF;">Then</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> cbar = CommandBars.Add<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#0000FF; background: #FFFFFF;">Name</span><span style=" color:#008080; background: #FFFFFF;">:=</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>MOF-Tools<span style=" color:#FF0000; background: #FFFFFF;">"</span>, Temporary<span style=" color:#008080; background: #FFFFFF;">:=</span><span style=" color:#0000FF; background: #FFFFFF;">True</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">End</span> <span style=" color:#0000FF; background: #FFFFFF;">If</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> ctl = cbar.FindControl<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#0000FF; background: #FFFFFF;">Type</span><span style=" color:#008080; background: #FFFFFF;">:=</span>msoControlButton, Tag<span style=" color:#008080; background: #FFFFFF;">:=</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>PageLayout<span style=" color:#FF0000; background: #FFFFFF;">"</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">If</span> ctl <span style=" color:#0000FF; background: #FFFFFF;">Is</span> <span style=" color:#0000FF; background: #FFFFFF;">Nothing</span> <span style=" color:#0000FF; background: #FFFFFF;">Then</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> ctl = cbar.Controls.Add<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#0000FF; background: #FFFFFF;">Type</span><span style=" color:#008080; background: #FFFFFF;">:=</span>msoControlButton<span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">End</span> <span style=" color:#0000FF; background: #FFFFFF;">If</span>
<span style=" color:#0000FF; background: #FFFFFF;">With</span> ctl
.Tag = <span style=" color:#FF0000; background: #FFFFFF;">"</span>PageLayout<span style=" color:#FF0000; background: #FFFFFF;">"</span>
.FaceId = 1589
.OnAction = <span style=" color:#FF0000; background: #FFFFFF;">"</span>PageLayout<span style=" color:#FF0000; background: #FFFFFF;">"</span>
.TooltipText = <span style=" color:#FF0000; background: #FFFFFF;">"</span>Querformat<span style=" color:#FF0000; background: #FFFFFF;">"</span>
<span style=" color:#0000FF; background: #FFFFFF;">End</span> <span style=" color:#0000FF; background: #FFFFFF;">With</span>
cbar.Visible = <span style=" color:#0000FF; background: #FFFFFF;">True</span>
<span style=" color:#0000FF; background: #FFFFFF;">On</span> <span style=" color:#0000FF; background: #FFFFFF;">Error</span> <span style=" color:#0000FF; background: #FFFFFF;">GoTo</span> 0
<span style=" color:#000080; background: #DFDFDF; font: italic bold;">End Sub </span><hr>
<a HREF='#Index' name='Pagelayout' style=" color:#000080; background: #DFDFDF; font: italic bold;">Sub Pagelayout() </a>
<span style=" color:#0000FF; background: #FFFFFF;">Dim</span> cbar <span style=" color:#0000FF; background: #FFFFFF;">As</span> CommandBar
<span style=" color:#0000FF; background: #FFFFFF;">Dim</span> ctl <span style=" color:#0000FF; background: #FFFFFF;">As</span> CommandBarButton
<span style=" color:#0000FF; background: #FFFFFF;">On</span> <span style=" color:#0000FF; background: #FFFFFF;">Error</span> <span style=" color:#0000FF; background: #FFFFFF;">Resume</span> <span style=" color:#0000FF; background: #FFFFFF;">Next</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> cbar = CommandBars<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>MOF-Tools<span style=" color:#FF0000; background: #FFFFFF;">"</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">If</span> cbar <span style=" color:#0000FF; background: #FFFFFF;">Is</span> <span style=" color:#0000FF; background: #FFFFFF;">Nothing</span> <span style=" color:#0000FF; background: #FFFFFF;">Then</span>
CreateToggleButton
<span style=" color:#0000FF; background: #FFFFFF;">End</span> <span style=" color:#0000FF; background: #FFFFFF;">If</span>
<span style=" color:#0000FF; background: #FFFFFF;">Set</span> ctl = CommandBars<span style=" color:#FF0000; background: #FFFFFF;">(</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>MOF-Tools<span style=" color:#FF0000; background: #FFFFFF;">"</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>.FindControl<span style=" color:#FF0000; background: #FFFFFF;">(</span>Tag<span style=" color:#008080; background: #FFFFFF;">:=</span><span style=" color:#FF0000; background: #FFFFFF;">"</span>PageLayout<span style=" color:#FF0000; background: #FFFFFF;">"</span><span style=" color:#FF0000; background: #FFFFFF;">)</span>
<span style=" color:#0000FF; background: #FFFFFF;">Select</span> <span style=" color:#0000FF; background: #FFFFFF;">Case</span> ctl.State
<span style=" color:#0000FF; background: #FFFFFF;">Case</span> msoButtonUp
ActiveDocument.PageSetup.Orientation = <span style=" color:#008080; background: #FFFFFF;">wdOrientLandscape</span>
ctl.State = msoButtonDown
ctl.TooltipText = <span style=" color:#FF0000; background: #FFFFFF;">"</span>Hochformat<span style=" color:#FF0000; background: #FFFFFF;">"</span>
<span style=" color:#0000FF; background: #FFFFFF;">Case</span> msoButtonDown
ActiveDocument.PageSetup.Orientation = <span style=" color:#008080; background: #FFFFFF;">wdOrientPortrait</span>
ctl.State = msoButtonUp
ctl.TooltipText = <span style=" color:#FF0000; background: #FFFFFF;">"</span>Querformat<span style=" color:#FF0000; background: #FFFFFF;">"</span>
<span style=" color:#0000FF; background: #FFFFFF;">End</span> <span style=" color:#0000FF; background: #FFFFFF;">Select</span>
<span style=" color:#0000FF; background: #FFFFFF;">On</span> <span style=" color:#0000FF; background: #FFFFFF;">Error</span> <span style=" color:#0000FF; background: #FFFFFF;">GoTo</span> 0
<span style=" color:#000080; background: #DFDFDF; font: italic bold;">End Sub </span><hr>
'Erstellt mit PapaSchlumpfs VBA-Konverter
HTH
PS

Xenia
22.07.2009, 12:25
Hallo Papaschlumpf,

herzlichen Dank für Deine Hilfe. Läuft wunderbar.

Tschüß
Xenia