wstawianie makra

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO

wstawianie makra

Postprzez tatadek » Pn mar 06, 2017 10:02 pm

Witajcie!
Interesuje mnie czy jest możliwe wstawienie makra do makra - tzn. utworzyłem makro do obliczeń, których muszę wykonywać dziesiątki i chciałbym to zautymatyzować poprzez kolejne makro. Czy tak się da?
OpenOffice 4.1.3 na Windows 8
tatadek
 
Posty: 1
Dołączył(a): Pn mar 06, 2017 9:55 pm

Re: wstawianie makra

Postprzez Jan_J » Wt mar 07, 2017 10:16 pm

Nazwa "makropolecenie" formalnie oznacza tekst kodu wysokiego poziomu, którego użycie przed rozpoczęciem przetwarzania jest fizycznie zastępowane jego treścią.
Są całe języki albo ich podstystemy, które tak funkcjonują. Na przykład preprocesor języka C. W pakietach użytkowych bywało, i nadal bywa, że makropolecenie zawiera sekwencję czynności użytkownika (Plik/Nowy/Wpisz imie=<parametr><Enter>nawisko=<parametr><Enter>/Plik/Zapisz/Plik/Drukuj).
W programowaniu Calca, Excela zresztą również, nazwa "makro" jest już tylko tradycją. Procedury i funkcje pisze się w regularnych językach, i wywołuje się je, najczęściej w trybie interpretacji, w ramach sesji aplikacji. Oczywiście te podprogramy mogą odwoływać się do innych podprogramów, byle by były wzajemnie widoczne.

Prosty przykład w Basicu
Kod: Zaznacz cały   Rozszerz widokZwiń widok
sub takie_tam()
komorka = thisComponent.currentController.getActiveSheet().getCellByPosition(0,0)
wstaw(komorka, 1.0)
dodaj(komorka, 2.34)
end sub

sub wstaw(cell, value)
  cell.setValue(value)
end sub

sub dodaj(cell, value)
  cell.setValue(cell.getValue() + value)
end sub

W innych językach wyposażonych w obsługę Calca (np. Python, JavaScript) jest podobnie.
JJ
LO (5.4|6.0) ∙ AOO 4.1.5 ∙ Python (3.6|2.7) ∙ Unicode 11 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3664
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław


Powrót do Makra i programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość