Witam
Jak trwale zapisać makro w pliku .ods, który powstał przez zapisanie pliku .xls w formacie "Arkusz kalkulacyjny ODF" w LibreOffice?
Mam plik ods, który zapisałem jako xls.
Mogę w nim zarejestrować makro, które się wykonuje. Jednak po zapisaniu pliku, zamknięciu i ponownym otworzeniu, makra nie ma.
Podobna rzecz się dzieje z plikami ods, w których są makra.
Zapisuję je jako xls.
Po takim zapisie nie ma już makr, które były wcześniej w pliku ods.
Nie można też nowych zapisać w tym pliku xls, który był stworzony z ods.
Można makro zarejestrować, wykonać, ale nie zapisuje się trwale po zamknięciu pliku.
Pozdrawiam
Jak trwale zapisć makro w pliku ods powstałym z xls?
Jak trwale zapisć makro w pliku ods powstałym z xls?
LibreOffice 6.4.6.2 (x64) Windows 10
Re: Jak trwale zapisć makro w pliku ods powstałym z xls?
O czym należy pamiętać, mówiąc o programowaniu arkuszy Excel i Calc.
- To są dwa całkowicie inne projekty z własnymi językami Basic.
- To fundacji LibreOffice zależy na możliwym udostępnieniu makr tworzonych w MS Office (Word, Excel, PowerPoint).
- MS Offie nie jest w ogóle zainteresowany konkurencją.
- LibreOffice potrafi otworzyć pliki MS Office i udostępnić zawarte w nich makra. LibreOffce w otwartym pliku odtwarza stosowną strukturę bibliotek, inną niż ta, która jest wykorzystywana przez zwykły plik pakietu. Zawartość biblioteki może być edytowana, jednak musi zostać zapisana w swoim macierzystym formacie. Przy tym zapisie nie są zapisywane biblioteki charakteryzujące LibreOffice. Jeśli więc chcemy dopisać makro w języku LibreOffice Basic, musimy je umieścić w module biblioteki VBA.
- Zapisanie pliku w formacie ODF powoduje usunięcie biblioteki VBA, zatem żadne makro nie może zostać wykonane.
- Otwarcie pliku ODF, pozwala dopisać do niego makra w języku VBA, jednak należy na początku modułu dodać instrukcję Option VBASupport 1.
- W takim pliku nie można utworzyć struktury odpowiadającej bibliotekom VBA. Zapisanie pliku w formacie MS Office nie utworzy zatem w nim żadnej biblioteki makr.
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 trwale zapisć makro w pliku ods powstałym z xls?
Bardzo dziękuję za wytłumaczenie.
Przeprowadziłem trochę testów i chyba zapisanie pliku .xls jako .ods nie usuwa makr z VBAProject.
Zatem, w LibreOffcie można zarejestrować makro i zapisać je trwale w pliku .ods.
Będzie ono wtedy w obiekcie nazwa-pliku.ods > Standard > Moduły > Module1.
Jeżeli w LibreOffice stworzymy plik .xls, albo .ods zapiszemy jako .xls, to nie da się tam zapisać żadnego makra.
Można natomiast w LibreOffice zapisywać nowe makra w plik .xls, gdy wcześniej zostało zapisane jakieś makro w MS Excel. Wtedy takie makra są w obiekcie
nazwa-pliku.xls > VBAProject > Moduły > Module1.
Poza tym, gdy taki plik .xls zapisany zostanie jako .ods, to nadal makra będą dostępne.
Co więcej, można teraz zapisywać makra zarówno w Standard > Moduły > Module1 jak i w VBAProject > Moduły > Module1.
Przeprowadziłem trochę testów i chyba zapisanie pliku .xls jako .ods nie usuwa makr z VBAProject.
Zatem, w LibreOffcie można zarejestrować makro i zapisać je trwale w pliku .ods.
Będzie ono wtedy w obiekcie nazwa-pliku.ods > Standard > Moduły > Module1.
Jeżeli w LibreOffice stworzymy plik .xls, albo .ods zapiszemy jako .xls, to nie da się tam zapisać żadnego makra.
Można natomiast w LibreOffice zapisywać nowe makra w plik .xls, gdy wcześniej zostało zapisane jakieś makro w MS Excel. Wtedy takie makra są w obiekcie
nazwa-pliku.xls > VBAProject > Moduły > Module1.
Poza tym, gdy taki plik .xls zapisany zostanie jako .ods, to nadal makra będą dostępne.
Co więcej, można teraz zapisywać makra zarówno w Standard > Moduły > Module1 jak i w VBAProject > Moduły > Module1.
LibreOffice 6.4.6.2 (x64) Windows 10