Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 31. 12. 2016 20:11:47

martan1484
Člen
Registrace: 30. 12. 2010
Příspěvků: 14

VYŘEŠENO: Makro: název tlačítka jako parametr do makra

Mám v listu několik tlačítek, která budou spouštět makra. Ta makra dělají všechna prakticky totéž, takže bych rád kód využil jen jednou a rozlišil to jen na základě do nějaké proměnné předaných parametrů.
Je možné nějak do makra předat název tlačítka, které bylo stisknuto?
Děkuji.

Pokud bude potřeba, mohu dodat později (zítra) příslušný dokument.

Editoval martan1484 (2. 1. 2017 13:09:28)

Offline

#2 31. 12. 2016 22:50:25

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,107

Re: VYŘEŠENO: Makro: název tlačítka jako parametr do makra

Tohle půjde těžko. Šlo by udělat jen několik krátkých pomocných maker která by vybavila proměnné a pak přepnula na hlavní makro - to by pracovalo stejně pro všechna tlačítka.
Například :
Global iVar1 as integer
Global iVar2 as integer
...
Global iVarx as integer

Sub Pom1
iVar1 = iVar1 + 1
HLAVNIMAKRO
End Sub

Sub Pom2
iVar2 = iVar2 + 1
HLAVNIMAKRO
End Sub

'............

Sub PomX
iVarX = iVarX + 1
HLAVNIMAKRO
End Sub

Sub HLAVNIMAKRO
'.................
End Sub


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 1. 1. 2017 16:09:36

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 748

Re: VYŘEŠENO: Makro: název tlačítka jako parametr do makra

Zkuste

Sub tl(par as variant)
print par.source.accessiblecontext.accessiblename
End Sub

Offline

#4 2. 1. 2017 13:08:53

martan1484
Člen
Registrace: 30. 12. 2010
Příspěvků: 14

Re: VYŘEŠENO: Makro: název tlačítka jako parametr do makra

Díky za rady. Vyzkouším #2 i #3.
Zatím jsem se to rozhodl řešit jednodušší variantou, tedy externí makro, které bude volat hlavní makro a předá mu požadované hodnoty dle příspěvku #2.

Offline

#5 2. 1. 2017 15:11:42

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,107

Re: VYŘEŠENO: Makro: název tlačítka jako parametr do makra

To makro od "lp." (#3) funguje dobře na název. Ale ať děláte co děláte musíte nastavit na tento systém nějaké proměnné - nejspíš číselné ze kterých budete nadále vycházet.
     Nevím sice k čemu to potřebujete ale když Vám to vrátí název musíte to hned větvit, nebo zasvést podobnou proměnnou jakou uvádím já.


     "lp." odpovídá ale přesně na Váš požadavek. Ovšem lze očekávat problémy s názvy. Když byste jen kopíroval tlačítka tak makro nerozeznává typ prvku (- například tlačítko1, respektive button1). Ovšem do makra musí spadnout unikátní název. Tedy 2. položka z vlastností - popisek.
     Z toho například vyplývá že nemůžete mít na každém listu jiné a stejně pojmenované tlačítko. U tlačítka je to celkem pochopitelné, ale například i jiných ovládacích prvků (seznam ap) jméno jako popisek uživatelé ponechávají implicitní - tedy nejspíš žádné.
     Ještě musím dodat že by se měla dát zavolat každá vlastnost (jako property) prakticky čehokoliv stejně jako události (například OnClick). Ale bývá to různým způsobem problematické.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#6 2. 1. 2017 15:34:57

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,107

Re: VYŘEŠENO: Makro: název tlačítka jako parametr do makra

Ještě mne napadlo že máte problém rozchodit postup podle "lp." Takže třeba takto :

Sub tlacitko(par as variant)
sVar = par.source.accessiblecontext.accessiblename
IF sVar = "Tlačítko první" Then
Print sVar
ElseIF sVar ="Tlačítko druhé" Then
print sVar
Else
print sVar
End If
End Sub

     Větvení můžete udělat místo IF také pomocí Select Case :

Select Case par.source.accessiblecontext.accessiblename
Case "Tlačítko první"
' něco udělat
Case "Tlačítko druhé"
' něco udělat
Case Else
' něco udělat
End Select

Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí