PDA

Vollständige Version anzeigen : Office2007 Standard-Elemente in eigenes Ribbon einbinden


DerJochen
18.08.2009, 14:42
Hallo,

ich bin neu im Office-Forum! Ich bin binnen seit kurzem mit dem Thema Office 2007 und Ribbons beschäftigt, nun kommen langsam Fragen auf und ich habe mir dieses Forum dazu ausgesucht um diese erst zu stellen und mittelfristig dann auch aktiv hier mitzuarbeiten.

Ich habe eine XML-Datei erstellt, in der ich einige Elemente wie Buttons, Listen etc. draufgepackt habe. Diese werde ich später über ein AddIn mit dem VB-Sourcecode verknüpfen.

Meine Frage, wie kann ich Standard-Office-Elemente in mein Ribbon einfügen.
Ich möchte die unten Aufgeführte Gruppe in das eigene Ribbon mit einfügen, welche Lösungsmöglichkeiten habe ich hier?
http://www.bilder-space.de/show.php?file=18.08R22y3rblrQNcYxC.jpg

Gruß Der Jochen

mumpel
18.08.2009, 15:23
Hallo!

Das ist ganz einfach. Angehängt findest Du die Übersichten für die wichtigsten Officeprogramme. Zum Einbinden nimmst Du idMso.

Anbei ein Beispiel. Damit wir die Gruppe Schriftart und die Schaltfläche (control) Format einfügen (FormatPainter)eingefügt.

<pre style='border:thin none #C0C0C0; padding:12px 24px; margin-left:12px; color:#000000'><customUI xmlns=<span style='color:#FF0000'>"http://schemas.microsoft.com/office/2006/01/customui"</span>> <ribbon startFromScratch=<span style='color:#FF0000'>"false"</span>> <tabs> <tab id=<span style='color:#FF0000'>"customTab"</span> label=<span style='color:#FF0000'>"Custom Tab"</span>> <group idMso=<span style='color:#FF0000'>"GroupFont"</span> /> <group id=<span style='color:#FF0000'>"grp02"</span> label=<span style='color:#FF0000'>"Format Painter"</span>> <control idMso=<span style='color:#FF0000'>"FormatPainter"</span> size=<span style='color:#FF0000'>"large"</span>/></group> </tab> </tabs> </ribbon> </customUI></pre>Code eingefügt mit VBA in HTML 2.0 (http://vbahtml.origo.ethz.ch)

Gruß, René

DerJochen
18.08.2009, 15:28
Vielen Dank für die rasche Antwort, dass werde ich gleich Mal austesten.

C-J
18.08.2009, 17:16
Ah!

Das habe ich gesucht :D


Ich bedanke mich auch recht herzlich für die Zip Packete!

Gruß,
CJ

DerJochen
19.08.2009, 12:28
Das mit den Elementen und vor allem mit diesen Funktionslisten ist das eine tolle Sache.
Was ich jedoch nicht hinbekommen habe: Zwei Textfelder oder Buttongroups nebeneinander darzustellen. Bei mir sind drei untereinander und nicht zwei und ich habe keine Idee wie ich diese fix nebeneinander anordnen kann.

Gruß Jochen

So sieht es aus:
http://www.bilder-upload.eu/thumb/dS3Z5y8SlVAPKiW.jpg (http://www.bilder-upload.eu/show.php?file=dS3Z5y8SlVAPKiW.jpg)

So hätte ich die Anordnung gerne:
http://www.bilder-upload.eu/thumb/xsRMdbxedXWjScN.jpg (http://www.bilder-upload.eu/show.php?file=xsRMdbxedXWjScN.jpg)

C-J
19.08.2009, 12:49
das geht auf jeden Fall .. ich bin am suchen :)



EDIT:
Probier das mal ...

<box id="box1" boxStyle="horizontal">
<checkBox id="check1" label="Enabled" onAction="IsEnabled_OnAction" />
<checkBox id="check2" label="Visible" onAction="IsVisible_OnAction" />
</box>




Gruß,
CJ

mumpel
19.08.2009, 12:53
RibbonX beginnt links oben und endet rechts unten. Wenn Du die Buttongroups nebeneinander haben möchtest, dann musst Du mit "Füllelementen" arbeiten. Die leeren Stellen einfach mit einem labelControl auffüllen. Damit es auch optisch gut aussieht, solltest Du die Maximalbreite der Auswahlfelder anpassen. Oder setze die Buttongroups in die erste Zeile und erst darunter die Auswahlfelder.

C-J
19.08.2009, 13:00
@mumpel:
Warum geht 'box' nicht? .. Ich habe es noch nicht ausprobiert

Gruß,
CJ

mumpel
19.08.2009, 13:09
Box geht schon. Nur sieht man das nicht. Erst wenn Du boxStyle auf vertikal setzt, dann werden die Elemente von oben nach unten angeordnet. Box ist nur eine Anordnung, wobei man zwischen horizontal und vertikal unterscheidet. Die Abstände der Elemente zueinander bleiben durch die Box unberührt, also Standardabstand. Nur Schaltflächen (button, toggleButton und control) können zu einer Gruppe (buttonGroup) zusammengefügt werden.

mumpel
19.08.2009, 13:17
Beispielcode:

<pre style='border:thin solid #FF8000; padding:12px 24px; margin-left:12px; color:#000000'><comboBox idMso=<span style='color:#FF0000'>"Font"</span>/> <comboBox idMso=<span style='color:#FF0000'>"FontSize"</span>/><box id=<span style='color:#FF0000'>"box1"</span> boxStyle=<span style='color:#FF0000'>"horizontal"</span>> <buttonGroup id=<span style='color:#FF0000'>"t1"</span>> <button id=<span style='color:#FF0000'>"b1"</span> label=<span style='color:#FF0000'>"test"</span>/> <button id=<span style='color:#FF0000'>"b2"</span> label=<span style='color:#FF0000'>"test"</span>/></buttonGroup> <buttonGroup id=<span style='color:#FF0000'>"t2"</span>> <button id=<span style='color:#FF0000'>"b3"</span> label=<span style='color:#FF0000'>"test"</span>/> <button id=<span style='color:#FF0000'>"b4"</span> label=<span style='color:#FF0000'>"test"</span>/></buttonGroup> </box></pre>
Code eingefügt mit VBA in HTML 2.0 (http://vbahtml.origo.ethz.ch)

C-J
19.08.2009, 13:34
Ich kann da jetzt keinen wirklichen Unterschied zum anderen Code erkennen ...:( na ja, ich habe es auch noch nicht in der Praxis angewandt, vielleicht wird es dann etwas klarer :)

Gruß,
CJ

mumpel
19.08.2009, 15:15
Funktionieren tut es mit der Box technisch schon. Aber optisch eine Katastrophe. Vor allem, wenn man mehr als 3 Zeilen und 1 Spalte nutzt. Im Beispielcode ist die erste Zeile kürzer als die Zweite. Kommen dann noch weitere Elemente in der Gruppe hinzu, dann sieht das optisch nicht sehr fein aus. Daher fülle ich in solchen Fällen mit labelControl auf. Damit kann man die Abstände gut kontrollieren. Und da die labelControl keinen Text bzw. nur Leerzeichen (für die Breite der labelControl) enthalten, fallen sie auch nicht weiter auf.

DerJochen
19.08.2009, 15:32
Hier der Ansatz, so funktioniert es:


<group id="grp02" label="Schriftart">
<box id="box1" boxStyle="horizontal">
<control idMso="Font" />
<control idMso="FontSize"/>
<buttonGroup id="t11">
<control idMso="FontSizeIncreaseWord"/>
<control idMso="Strikethrough"/>
</buttonGroup>
<buttonGroup id="t1">
</buttonGroup>
</box>
<box id="box1222" boxStyle="horizontal">
<buttonGroup id="g4">
<control idMso="Bold"/>
<control idMso="Italic"/>
<control idMso="Underline"/>
</buttonGroup>
<buttonGroup id="g5">
<control idMso="TextHighlightColorPicker"/>
<control idMso="FontColorPicker"/>
</buttonGroup>
</box>
</group>

C-J
19.08.2009, 15:42
füge es als HTML Code ein ...