Szerző: Zizi64 » 2020. június 30., kedd 7:01
Egyes makrók MS VBA képesek működni LibreOffice alatt is, de mindig jobb újraírni a makróidat a LibreOffice StarBasic-ben, (vagy más támogatott nyelven) az API függvényekre támaszkodva. (API: Application Programming Interface.) Amely VBA makrók működhetnek a LO-ban, azok a tisztán matematikai függvények és - a kompatibilitási mód bekapcsolása mellett - azok a vezérlő makrók, amelyek kompatibilis (mindkét Office-ban létező, és nagyon hasonló működést mutató) funkciókat, tulajdonságokat vezérelnek.
Miért nem működik? Sok oka lehet. A makró nevéből következtetek, hogy a dokumentumban lévő Szekciók (Szakaszok) alapján történik a szétválasztás. A Szakasz (Section) kifejezés egészen mást takar LibreOffice-ban, mint amire emlékszem az MS-Office-ból. Nem is lehet a két tulajdonságot egymásba konvertálni. Ez már eleve egy lehetséges ok.
Pontosabban csak akkor tudom megvizsgálni, ha feltöltesz ide egy szétszedendő minta dokumentumot (lehetőleg ODF - .odt - és OOXML - .docx - formátumban is: a "szakaszok" precíz megjelenítése érdekében), és a régi VBA makrókódot. Bináris .doc formátummal nem nagyon tudok mit kezdeni, de ha csak abban van meg, akkor azt. Az MS formátum MS szoftverrel létrehozott legyen!
Ha ilyet nem tudsz prezentálni, akkor részletesebb leírás, illetve olyan ODF típusú mintadokumentumok kellenek, amiket kézzel hozol létre: Egy eredeti és n darab szétválasztott. Hogy lássam, MI MENTÉN is kell ezt a szétválasztást megejteni, és hogy a stílusok és egyéb tulajdonságok közül mik menjenek át az egyes "szelet"-dokumentumokba.
Valószínűleg azt az utat lehet követni, hogy egy LO StarBasic+API makróval n példányt kell létrehozni az eredeti dokumentumból, és a nem szükséges részeket törölni mindegyikből. Csak az a kérdés, hogy hogyan jelöljük ki a törlendő tartományokat.
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.5, AOO4.1.7
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].