Soutien de VBA dans OpenOffice.Org Calc
Posté le 21. Oct, 2009 par Krishnan en ingénierie , Howto , OpenOffice.org , Conseils
Depuis de nombreuses années jusqu'à hier, je savais à propos OpenOffice.Org Calc. Aujourd'hui, je suis excité à ce sujet.
J'ai essayé OpenOffice il ya plusieurs années. Il pourrait faire des choses peu à l'époque, mais j'ai tout de suite rejeté comme insuffisante pour mes besoins. J'ai toujours été un fan de ce VBA pourrait faire pour Excel.
La semaine dernière, j'ai terminé la pièce la plus complexe de l'application VBA que je n'avais jamais écrit. Je suis un newbie VBA et il m'a fallu une semaine pour finir mon code qui pourrait être imprimé sur 28 pages A4. Ma feuille de calcul jusqu'à la date fonctionne parfaitement sur XP / Office 2003 comme il est censé le faire, mais j'ai écrit la plupart de mon code dans Vista / Office 2007.
Lorsque je suis passé à Debian Squeeze, Openoffice.org 3.1.1 est venu avec elle. J'ai vérifié la nouvelle version et a été impressionné de voir que l'on pourrait écrire des macros en Python, Javascript, BeanShell, en plus de BASE.
J'ai essayé d'ouvrir ma pièce la plus complexe de code VBA dans Openoffice.org et j'ai été bombardé avec des centaines de messages d'erreur répétitifs que j'ai eu à tuer la feuille de calcul à partir de la ligne de commande. J'étais convaincu que VBA et OOoCalc ne sont pas compatibles, jusqu'à ce que je découvre ce site par hasard en essayant d'apprendre à écrire des macros Javascript dans OOo.
OK. Tout ce que je besoin d'ajouter est "Option VBA Support 1". Cela n'a pas semblé trop difficile, alors j'ai essayé d'ouvrir ma feuille de calcul à nouveau et a dû à nouveau tuer tout en ligne de commande.
Quelque chose n'allait pas et je n'étais pas en mesure d'exécuter VBA, malgré la compatibilité promise.
J'ai donc décidé d'aller lentement. Peu importe combien de fois, je ne pouvais pas exécuter les macros lorsque j'ai ouvert le fichier Excel natif. J'ai donc décidé d'ouvrir le fichier Excel avec des macros désactivés. Ce laissez-moi ouvrir la feuille de calcul, mais rien ne fonctionnait. J'ai trouvé que OOoCalc automatiquement avait ajouté "Option VBA Support 1" à mes modules.
J'ai sauvé le fichier en tant que. ODS et a procédé à déboguer en permettant des macros. Cette fois, les erreurs ne sont pas venus dans un flood.They vint un à la fois et il était plus facile à déboguer.
La première série d'erreurs liées à des variables qui n'ont pas une déclaration explicite Dim. VBA dans Excel semblait plus tolérant dans le traitement des varaibles sans véritables instructions Dim. Mais OOo Calc ne l'aiment pas. Donc j'ai fini par ajouter quelques déclarations Dim pour certaines variables.
La prochaine série d'erreurs était avec des noms UDF Excel. OOo Calc aime voir Fonctions d'être invoquées par des lettres majuscules. Donc, si vous aviez utilisé les lettres minuscules dans Excel, ils apparaissent comme des erreurs. Cela pourrait être facilement corrigé par l'utilisation de rechercher et remplacer fonctionnalité.
Avec seulement ces deux choses, fixé mon nouveau fichier. ODS a parfaitement fonctionné. J'ai ensuite enregistré en tant que. Xls et re-ouvert les xls. Et tout ce qui était encore de travail. Bien que OOo Calc documentation dit encore que toutes les fonctionnalités sont prises en charge VBA, VBA fonctionne bien sur OOoCalc pour tous les calculs d'ingénierie pratiques. Donc, le moment est venu pour moi de faire le changement.
Maintenant, si vous avez des difficultés, dans l'obtention de votre code VBA pour travailler dans OOo Calc, ne donnent pas bientôt.

Related posts:


















































Rakesh
07. Nov, 2009
Salut,
J'ai essayé de faire ce que tu l'ai mentionné, mais encore il ne fonctionne pas.
si SHEET1.CELLS (7, 4) = "" Ou SHEET1.CELLS (9, 4) = "" Ou SHEET1.CELLS (10, 4) = ""
Dans cette ligne, je reçois la propriété ou méthode introuvable.
Krishnan
09. Nov, 2009
La syntaxe est manifestement erronée que je peux voir.
Si, then, else sont les mots-clés pour être utilisés. Non Ou.
Jacques
07. Feb, 2010
ingnoring l'"rems"
comment feriez-vous à droite de cette dans OOo? i cant travail sur OOo - pls me lancer?
Rem mots sub ()
Rem '
Rem 'Macro mots
Macro Rem 'a enregistré par le propriétaire 02/07/2010
Rem '
Raccourci clavier Rem ': Ctrl + w
Rem '
Rem Dim NumWords As Integer
Rem longueur de mot Dim As Integer
Rem comte Dim As Integer
Rem Dim COUNT2 As Integer
Rem Dim Lcase As Integer
Rem
Rem Parole Dim As String
Rem Dim MixedWord As String
Rem Dim Lettre As String
Rem
Feuilles de Rem '("Words"). Activer
Rem
Rem Set wordRange = Worksheets ("Words") Range ("A1: A500").
Rem NumWords = Application.WorksheetFunction.CountA (wordRange)
Rem
Rem Pour Count = 1 Pour NumWords
Rem longueur de mot = Len (Cells (comte, 1))
Rem
Rem
Rem 'Application.EnableSound = False
Rem
Rem 'Application.EnableSound = True
Rem mots = cellules (le comte, 1)
Cellules Rem '(Comte, 1). Activer
ActiveCell.Characters Rem '(1, 3). PhoneticCharacters = Parole
Rem MixedWord = ""
Rem Pour COUNT2 = 1 To longueur de mot
Rem Lettre = Mid (Cellules (comte, 1), COUNT2, 1)
Rem 'Application.Speech.Speak (Lettre)
Rem Lcase = Round (Rnd)
Rem
Rem
Rem Si Lcase = 1 et l'ASC (Lettre)> = 97 Puis Lettre = Chr (Asc (Lettre) - 32)
Rem
Rem MixedWord = MixedWord + Lettre
Rem Suivant COUNT2
Les cellules rem (1, 5) = MixedWord
Rem
Rem message Dim, Titre, par défaut, MyValue
= Message Rem "Monkey Prêt?"
Rem Titre = "jeu d'orthographe honneurs."
Rem par défaut = "YES"
Rem MyValue = InputBox (Message, Titre, par défaut)
Rem
Rem
Rem Pour COUNT2 = 1 To longueur de mot
Rem Lettre = Mid (Cellules (comte, 1), COUNT2, 1)
Rem Application.Speech.Speak (Lettre)
Rem Suivant COUNT2
Rem Application.Speech.Speak (Word)
Rem
Rem Si MyValue "OUI" Puis
Rem Application.Speech.Speak ("C'est pooey tort - que vous avez entré")
Rem longueur de mot = Len (MyValue)
Rem Pour COUNT2 = 1 To longueur de mot
Rem Lettre = Mid (MyValue, COUNT2, 1)
Rem Application.Speech.Speak (Lettre)
Rem Suivant COUNT2
Rem Application.Speech.Speak (MyValue)
Fin Rem Si
Rem
Rem
Rem comte Suivant
Rem
Rem
Fin Rem Sous
Rem