Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
[SOLVED] Witam,
w tym co robię obracam się jednocześnie w trzech językach: polskim, rumuńskim i esperanto. Nie chcę ciągle przełączać się między językami, tylko co jakiś czas wstawić litery charakterystyczne dla danego języka (np. dla polskiego: ąęćłńóśźż). Widzę to tak,że kombinacja np.3 klawiszy wstawia litery z których usuwam niepotrzebne, a pozostałą zostawiam. W microsoft word miałem takie coś. Czy ktoś może pomóc?
w tym co robię obracam się jednocześnie w trzech językach: polskim, rumuńskim i esperanto. Nie chcę ciągle przełączać się między językami, tylko co jakiś czas wstawić litery charakterystyczne dla danego języka (np. dla polskiego: ąęćłńóśźż). Widzę to tak,że kombinacja np.3 klawiszy wstawia litery z których usuwam niepotrzebne, a pozostałą zostawiam. W microsoft word miałem takie coś. Czy ktoś może pomóc?
Ostatnio zmieniony ndz maja 06, 2018 12:11 am przez vitred, łącznie zmieniany 1 raz.
LibreOffice 5.4.4.2 Windows10
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Wydaje mi się, że najprościej będzie zdefiniować tzw. autoteksty. Dla każdego języka osobny.
We Writerze wywołanie autotekstu następuje po wciśnięciu sekwencji aktywującej + F3.
Na przykład predefiniowany szablon numerowanego równania dostaniesz przez fn<F3>
W tym przypadku zdefiniowałbym autotekst pl o treści ąćęłńóśźż itp.
Napisz treść do wstawiania automatycznie, zaznacz ją i potem
Edycja -> Autotekst -> wpisz nazwę i id. [v] Nowy
We Writerze wywołanie autotekstu następuje po wciśnięciu sekwencji aktywującej + F3.
Na przykład predefiniowany szablon numerowanego równania dostaniesz przez fn<F3>
W tym przypadku zdefiniowałbym autotekst pl o treści ąćęłńóśźż itp.
Napisz treść do wstawiania automatycznie, zaznacz ją i potem
Edycja -> Autotekst -> wpisz nazwę i id. [v] Nowy
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Jeśli rzeczywiście zależy ci tylko na możliwości wstawienia zestawu charakterystycznych liter z alfabetu rumuńskiego lub esperanto, to przygotowałem w Basicu cztery makra, które to umożliwią. Pominąłem język polski bo tu korzystasz z prawego klawisza ALT.
Cztery, bo są dwa języki a w każdym możesz chcieć wstawić litery wielkie albo małe.
Przekopiuj makra do biblioteki "Standard" modułu "Module1" w lokalizacji "Moje makra". Dzięki temu będą one dostępne w każdym dokumencie na tym komputerze. Makra mają nazwy wr - litery wielkie rumuńskie mr- litery małe rumuńskie, we - litery wielkie esperanto i me- litery małe esperanto.
Skopiuj cały kod i go tam wklej.
Następnie przypisz im skróty klawiaturowe. Proponuję ALT+R - rumuńskie małe, ALT+SHIFT+R - rumuńskie wielkie, ALT+E - esperanto małe i ALT+SHIFT+E esperanto wielkie. W tych skrótach ALT jest lewym klawiszem ALT (w prawym "E" jest już obsadzone dając "ę" albo "Ę").
To zrobisz wybierając "Narzędzia -> Dostosuj... -> Klawiatura". W tej zakładce w części "Kategoria" przewiń widok w dół aż zobaczysz pozycję "Makra LibreOffice" rozwiń ją i znajdź lokalizację "User" (czasem nazwa "Moje makra" nie jest przetłumaczona). Rozwiń "User" i znajdź "Standard" a w nim "Module1". Po zaznaczeniu "Module1" obok w obszarze "Funkcja" zobaczysz nazwy makr. Teraz w górnej części wskaż wymagana kombinację klawiszy i naciśnij "Modyfikuj". Jeśli się pomyliłeś możesz kliknąć "Usuń". Przypisując skróty możesz jeszcze wybrać czy będą one dotyczyły całego pakietu czy tylko Writera.
Oto potrzebny zestaw instrukcji:
Cztery, bo są dwa języki a w każdym możesz chcieć wstawić litery wielkie albo małe.
Przekopiuj makra do biblioteki "Standard" modułu "Module1" w lokalizacji "Moje makra". Dzięki temu będą one dostępne w każdym dokumencie na tym komputerze. Makra mają nazwy wr - litery wielkie rumuńskie mr- litery małe rumuńskie, we - litery wielkie esperanto i me- litery małe esperanto.
Skopiuj cały kod i go tam wklej.
Następnie przypisz im skróty klawiaturowe. Proponuję ALT+R - rumuńskie małe, ALT+SHIFT+R - rumuńskie wielkie, ALT+E - esperanto małe i ALT+SHIFT+E esperanto wielkie. W tych skrótach ALT jest lewym klawiszem ALT (w prawym "E" jest już obsadzone dając "ę" albo "Ę").
To zrobisz wybierając "Narzędzia -> Dostosuj... -> Klawiatura". W tej zakładce w części "Kategoria" przewiń widok w dół aż zobaczysz pozycję "Makra LibreOffice" rozwiń ją i znajdź lokalizację "User" (czasem nazwa "Moje makra" nie jest przetłumaczona). Rozwiń "User" i znajdź "Standard" a w nim "Module1". Po zaznaczeniu "Module1" obok w obszarze "Funkcja" zobaczysz nazwy makr. Teraz w górnej części wskaż wymagana kombinację klawiszy i naciśnij "Modyfikuj". Jeśli się pomyliłeś możesz kliknąć "Usuń". Przypisując skróty możesz jeszcze wybrać czy będą one dotyczyły całego pakietu czy tylko Writera.
Oto potrzebny zestaw instrukcji:
Kod: Zaznacz cały
rem definicja stałych l-litery, r -rumuńskie, e -esperanto, w - wielkie, m- małe
const lrw="ĂÂÎŞŢ"
const lrm="ăâîşţ"
const lew="ĈĜĤĴŜŬ"
const lem="ĉĝĥĵŝŭ"
sub wr
rem litery rumuńskie wielkie
Dim oDoc As Object
Dim oText As Object
Dim oVCurs As Object
Dim oTCurs As Object
oDoc = ThisComponent
oText = oDoc.Text
oVCurs = oDoc.CurrentController.getViewCursor()
oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
oText.insertString(oTCurs, lrw & " ", FALSE)
end sub
sub mr
rem litery rumunskie małe
Dim oDoc As Object
Dim oText As Object
Dim oVCurs As Object
Dim oTCurs As Object
oDoc = ThisComponent
oText = oDoc.Text
oVCurs = oDoc.CurrentController.getViewCursor()
oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
oText.insertString(oTCurs, lrm & " ", FALSE)
end sub
sub we
rem litery esperanto wielkie
Dim oDoc As Object
Dim oText As Object
Dim oVCurs As Object
Dim oTCurs As Object
oDoc = ThisComponent
oText = oDoc.Text
oVCurs = oDoc.CurrentController.getViewCursor()
oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
oText.insertString(oTCurs, lwe & " ", FALSE)
end sub
sub me
rem litery esperanto małe
Dim oDoc As Object
Dim oText As Object
Dim oVCurs As Object
Dim oTCurs As Object
oDoc = ThisComponent
oText = oDoc.Text
oVCurs = oDoc.CurrentController.getViewCursor()
oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
oText.insertString(oTCurs, lme & " ", FALSE)
end sub
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Bardzo dziękuję za szybkie odpowiedzi na mój problem.
Jeżeli chodzi o odp. 1 od Jan_J to znalazłem autotekst w moim writerze w zakładce Narzędzia->Autotekst... (Ctrl+F3), ale nie wiem jak tam wstawić jakiś tekst ?
I nie rozumiem ciągu:i id. [v] Nowy ???
Jeżeli chodzi o odp. 2 od Jermor - to wykonałem wszystkie czynności i sukces jest tylko połowiczny, tzn. działają litery rumuńskie małe i wielkie, a nie działają litery w jęz.esperanto na skrótach klawiszowych ALT+E i ALT+SHIFT+E; przy czym kombinacja klawiszy ALT+E rozwija zawartość zakładki Edycja (Plik Edycja Widok ...itd.) na pasku w moim writerze. (naturalnie lewy ALT)
Dobre i tyle. Dzięki!
Jeżeli chodzi o odp. 1 od Jan_J to znalazłem autotekst w moim writerze w zakładce Narzędzia->Autotekst... (Ctrl+F3), ale nie wiem jak tam wstawić jakiś tekst ?
I nie rozumiem ciągu:i id. [v] Nowy ???
Jeżeli chodzi o odp. 2 od Jermor - to wykonałem wszystkie czynności i sukces jest tylko połowiczny, tzn. działają litery rumuńskie małe i wielkie, a nie działają litery w jęz.esperanto na skrótach klawiszowych ALT+E i ALT+SHIFT+E; przy czym kombinacja klawiszy ALT+E rozwija zawartość zakładki Edycja (Plik Edycja Widok ...itd.) na pasku w moim writerze. (naturalnie lewy ALT)
Dobre i tyle. Dzięki!
LibreOffice 5.4.4.2 Windows10
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Nowy autotekst robi się tak:
wpisujesz blablabla do dokumentu, zaznaczasz, wywołujesz dialog zarządzania autotekstami (Narzędzia/Auteotekst). Zaznaczasz ze chodzi o nowy wpis (na dole dialogu), nadajesz mu nazwę i skrót do wywołania.
wpisujesz blablabla do dokumentu, zaznaczasz, wywołujesz dialog zarządzania autotekstami (Narzędzia/Auteotekst). Zaznaczasz ze chodzi o nowy wpis (na dole dialogu), nadajesz mu nazwę i skrót do wywołania.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
No tak, zapomniałem, że "E" jest przypisane do lewego altu przy wywoływaniu poleceń menu z klawiatury. Ale możesz sobie przypisać inną literę np.obok "R" jest "T". Te litery w liście poleceń menu, które są podkreślone, są przypisane do skrótu ALT+litera (ALT oczywiście lewy) aby móc wywołać polecenia gdy nie ma myszki.
Ponadto poprawiając kod zostawiłem dwie literówki, które powinieneś poprawić, bo przez to nie są wstawiane litery z esperanto.
jest const lew="ĈĜĤĴŜŬ" powinno być const lwe="ĈĜĤĴŜŬ"
jest const lem="ĉĝĥĵŝŭ" powinno być const lme="ĉĝĥĵŝŭ"
Ponadto poprawiając kod zostawiłem dwie literówki, które powinieneś poprawić, bo przez to nie są wstawiane litery z esperanto.
jest const lew="ĈĜĤĴŜŬ" powinno być const lwe="ĈĜĤĴŜŬ"
jest const lem="ĉĝĥĵŝŭ" powinno być const lme="ĉĝĥĵŝŭ"
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Jak zrobić makro żeby wstawiać ciąg edytowalnych liter?
Jeśli chodzi o sposób Jana_J. Jest oczywiście bdb bo nie trzeba pisać makra. Zasada działania jest taka, że po wpisaniu przypisanego skrótu i naciśnięciu klawisza F3 zostanie wstawiona treść autotekstu. Obsługa autotekstu to polecenie "Edycja -> Autotekst..." albo skrót klawiaturowy CTRL+F3.
O autotekście więcej możesz poczytać tutaj: https://yestok.pl/ooo/y51.php
[uzupełnienie] "Edycja -> Autotekst..." w wersji 5.3.7, "Narzedzia -> Autotekst..." od wersji 5.4
O autotekście więcej możesz poczytać tutaj: https://yestok.pl/ooo/y51.php
[uzupełnienie] "Edycja -> Autotekst..." w wersji 5.3.7, "Narzedzia -> Autotekst..." od wersji 5.4
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
[SOLVED]Jak zrobić makro żeby wstawiać ciąg edytowalnych lit
Wielkie dzięki! No świetnie wszystko działa! Ale, ale...Wersja przez Audiotekst także bardzo się przydaje do wstawiania stałych elementów tekstu.
Jestem już po 60 i coraz trudniej uczyć się nowych rzeczy. To duże ułatwienie dla mnie. Jeszcze raz dzięki dla obu Panów!
Jestem już po 60 i coraz trudniej uczyć się nowych rzeczy. To duże ułatwienie dla mnie. Jeszcze raz dzięki dla obu Panów!
LibreOffice 5.4.4.2 Windows10