< návrat zpět

MS Excel


Téma: Programovanie ribbonu - zmena hodnoty checkboxov rss

Zaslal/a icon 31.12.2015 18:59

Ahoj,

mám vytvorený jednoduchý ribbon v ktorom sa na záložke nachádza 1 skupina, vo vnútri ktorej sú 2 checkboxy a 1 button. Potreboval by som programovo meniť hodnoty checkboxov tak, že zatrhnutý môže byť vždy len jeden a makro pod buttonom potom na základe toho, ktorý checkbox je pressed (zatrhnutý), vyberie príslušnú šablónu.
Tzn. potreboval by som do nejakej premennej zapísať hodnotu na základe toho, či je zatrhnutý prvý, alebo druhý checkbox a s touto premennou potom pracovať v makre pod buttonom.

Pomôcť potrebujem teda s 2 vecami:
1. Ako programovo zariadiť, aby pri zatrhnutí checkboxu sa druhý automaticky odcheckoval.
2. Ako zapísať do nejakej premennej hodnotu na základe toho, ktorý checkbox je zatrhnutý.

Prikladám prílohu.

Příloha: zip28927_ribbon2.zip (15kB, staženo 23x)
Zaslat odpověď >

#028929
avatar
Budu pozorně sledovat diskusi na dané téma, protože jsem se v daném ohledu zatím nikdy ničeho kloudného nedobral. Dlouhou řadu dní, které jsem věnoval studiu úprav ribbonu, shrnu do vlastního poznatku, že mne tato kapitola Excelu na základě mých dosažených výsledků uvedla do pocitu nespokojenosti a neúspěšnosti. Otevření tématu zde mi třebas prozradí důvod mých potíží.
Místo pokusů o vytváření vlastních ribbonových karet jsem začal používat formuláře (MS Forms), pomocí nichž bez problémů simuluji staré-dobré lišty nástrojů, o které mne ribbonový Excel připravil. Tato technika mi plně vyhovuje a např. pro komunikaci s doplňky se chová víc než uspokojivě.citovat
#028933
avatar
Myslím, že nápověda stačí.
Příloha: zip28933_ribbon2.zip (16kB, staženo 26x)
citovat
icon #028935
avatar
lubo, perfektné. Ďakujem za pomoc, funguje podľa predstáv. Teraz budem chvíľu študovať kód, aby som sa niečomu priučil. Na prvý pohľad sa mi javí, že to z tých komentárov pochopím, takže ďakujem okrem dodania riešenia i za dodanie fajn študijného materiálu.citovat
icon #029002
eLCHa
Nejdříve technická.
Nemám rád věci vytvářené nějakými nástroji, protože si tam většinou přidávají něco, co není potřeba.

Vytvořte si svůj první ribbon ručně - otestujte nejlépe ve 2007 a pak už jen modifikujte. Je to časově náročnější než programem, ale víte přesně co měníte a děláte to jednou za uherský rok, takže se to dle mého vyplatí.

Excel 2007 - zkusil jsem obě přílohy a ani jednou se mi ribbon nezobrazil. Takže manuální úprava:
1. customUI14.xml - přejmenováno na customUI.xml
2. customUI.xml - upraven kód:<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="Tab1" label="Print GM">
<group id="Group2" label="Print Output">
<checkBox id="Checkbox1" label="Anglicky" getPressed="Checkbox1_getPressed" onAction="Checkbox1_onAction" />
<checkBox
id="Checkbox2" label="Slovensky" getPressed="Checkbox2_getPressed" onAction="Checkbox2_onAction" />
<separator id="Separator1" />
<button id="Button2" imageMso="AppointmentColor1" label="Vytvor plan" size="large" onAction="Macro1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>


3. - .rels - upraven kód<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
<Relationship Id="rIdMyRibbon1" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/>
</Relationships>


Ribbon se ve 2007 zobrazuje.

A ještě 2 rady
Podle způsoobu použití (dlouhodobé = po celou dobu otevření excelu, tedy řádově hodiny nebo krátkodobé) je třeba ještě řešit zapomínání excelu ve spojení s globálními proměnnými (tedy i checkboxy kuk sem).
V onAction vždy přidávejte celou cestu ke kódu - NazevProjektu.NazevModulu.NazevProcedury. Pokud použijete dva soubory s vlastním ribbonem, v něm bude stejně pojmenovaný modul a stejná procedura, bude se volat ta správná. A toto se vám stane, pokud jako já budete používat svá již hotová řešení ;) .citovat
icon #029003
eLCHa
A jen na okraj
Kdo si netroufne na ribbon - velmi dobře funguje starý způsob - tedy vytvoření klasické nabídky - ta se pak zobrazí v kartě Doplňky. To ovšem není řešení hodné uživatelů na úrovni ALa ;)citovat
icon #029004
avatar
eLCHa:
ďakujem za rady
k jednotlivým poznámkam:
Nemám rád věci vytvářené nějakými nástroji, protože si tam většinou přidávají něco, co není potřeba. - použil som na to Custom UI Editor For Microsoft Office, nie som si vedomý, že by tento nástroj do schémy pridal nejaký balast, ale môže to tak byť
Ešte som skúšal doplnok od Andyho Popa, Ribbon Designer. Ten je celkom user friendly, ale nejaké muchy to má.
Excel 2007 - zkusil jsem obě přílohy a ani jednou se mi ribbon nezobrazil - je to tak, páč som použil schému pre 2010, na to si ale prišiel
Podle způsoobu použití (dlouhodobé = po celou dobu otevření excelu, tedy řádově hodiny nebo krátkodobé) je třeba ještě řešit zapomínání excelu ve spojení s globálními proměnnými (tedy i checkboxy kuk sem). - Toho som si vedomý a užívateľa som na možné problémy spojené s uvedeným upozornil. Ale zadanie bolo mať ribbon, tak je ribbon, uložený v doplnku tak, aby bola nová karta vždy viditeľná.citovat
icon #029005
eLCHa
@AL
mno - na začátku nějaký komentář, na konci tagu zbytečné mezery - nevím co všechno způsobilo nezobrazení ve 2007, všechno jsem si hned upravil ;)
Je to myšleno obecně, po všechny, kdo si budou chtít něco s panem stuhou začít, třeba se vyhnou problémům,které potkaly mne ;)) .
Asi bych ale vždy raději použil schéma pro 2007 ;)citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse