Compatibilità Macro Vba Su Openoffice/Libreoffice

Brevi guide create dagli utenti, per gli utenti
Rispondi
d4rkheart
Messaggi: 516
Iscritto il: martedì 9 novembre 2010, 1:50

Compatibilità Macro Vba Su Openoffice/Libreoffice

Messaggio da d4rkheart »

Istruzioni per chi vuole rendere compatibili le macro Vba di microsoft excel su openoffice/libreoffice e/o come aprire i file excel .xls su openoffice/libreoffice e permettere l'esecuzione corretta delle macro.

Per abilitare la macro su openoffice/libreoffice:
- strumenti
- opzioni
- openoffice.org/libreoffice.org
- sicurezza
- sicurezza delle macro
- medio
- ok.
Ogni qualvolta si aprirà un documento contenente delle macro basterà cliccare su “Abilita macro” se si vuole attivare la macro.

Per chi dovrà utilizzare dei file .xls con delle macro su openoffice/libreoffice:
- strumenti
- opzioni
- carica/salva
- proprietà vba
- tutte le caselle di controllo (checkbox) presenti devono essere spuntate compresa la casella "codice eseguibile".
Aprire il file excel con openoffice/libreoffice, attivare la macro e utilizzare il documento, dopo aver modificato il documento salvare nel formato nativo open document (.ods; .ots). Allego un'immagine perché possiate vedere come si modificherà la macro con libreoffice. Lavorare sempre su copie dei documenti .xls, in caso di errori è possibile ripristinare il documento originale. Le macro molto complesse possono restituire errori di runtime ed essere inutilizzabili, a questo punto bisognerà creare delle macro per openoffice/libreoffice.

Per chi conosce il linguaggio vba e non ha Microsoft office per renderlo compatibile con openoffice/libreoffice anteporre al codice vba:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1

Per inserire macro nel documento:
- strumenti
- macro
- organizza macro
- openoffice.org basic/libreoffice.org basic
- su "Macro da" selezionare il file Senza nome e poi cliccare su Nuovo, su nome cliccare su ok oppure lo rinominate a vostro piacimento, si aprirà una finestra per copiare il codice vba. Rimuovere tutto quello che trovate all'interno:
REM ***** BASIC *****
Sub Main
End Sub

Dopo aver rimosso quanto scritto sopra copiare la macro vba anteponendo il codice:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1

- File
- salva
- salvate il file col nome che preferite, utilizzare sempre il formato nativo ods oppure ots altrimenti, se salvate come file xls, alla riapertura del file non ritroverete la macro nel documento (mi è già capitato).
Ripeto: Se la macro è molto complessa può restituire errori di runtime e va creata una macro apposita per openoffice/libreoffice.
Allegati
Macro su Libreoffice
Macro su Libreoffice
Avatar utente
Acciaio Linux
Messaggi: 19
Iscritto il: mercoledì 1 agosto 2012, 13:34

Re: Compatibilità Macro Vba Su Openoffice/Libreoffice

Messaggio da Acciaio Linux »

Non è totalmente compatibile perchè su Microsoft Excel questo codice:

Codice: Seleziona tutto

Function LOL(Area)
LOL=Area.Rows.Count
End Function
funziona, mentre su OpenOffice questo codice:

Codice: Seleziona tutto

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Function LOL(Area)
LOL=Area.Rows.Count
End Function
non funziona.
OpenOffice.org 3.4.1
Ubuntu 12.04 LTS, 32 bit (i686)
Unity
d4rkheart
Messaggi: 516
Iscritto il: martedì 9 novembre 2010, 1:50

Re: Compatibilità Macro Vba Su Openoffice/Libreoffice

Messaggio da d4rkheart »

Salve Acciaio Linux
Non tutte le macro vba sono compatibili con libreoffice o openoffice pur inserendo

Codice: Seleziona tutto

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
oppure

Codice: Seleziona tutto

Option VBASupport 1
prima della macro vba.

Alcune vanno, altre no, mi dispiace.
Provare a renderla compatibile ruba solo pochi minuti ma si deve partire con la consapevolezza che potrebbe non funzionare e può anche capitare che una determinata macro è compatibile con libreoffice ma non lo è con openoffice e viceversa.
Avatar utente
Acciaio Linux
Messaggi: 19
Iscritto il: mercoledì 1 agosto 2012, 13:34

Re: Compatibilità Macro Vba Su Openoffice/Libreoffice

Messaggio da Acciaio Linux »

Grazie dell'informazione.
OpenOffice.org 3.4.1
Ubuntu 12.04 LTS, 32 bit (i686)
Unity
Rispondi