Slip uden om VBA - brug Ruby!

Jeg har optil flere bekendte som læser økonomi og som har studiejob i en bank eller et sted med finansielle afdelinger. Derigennem har jeg optil flere gange hørt VBA blive nævnt, som værende en forudsætning for mange af disse jobs. Så vidt jeg kan forstå bruger de VBA til, at håndtere og sortere i eksempelvis store Excel ark.

Det er så her at jeg tænker "stakkels dem"! De fleste inden for disse faggrupper har ikke den store programmeringserfaring og så skal de udsættes for VB scripts til at behandle data i Excel? Puha!

Jeg begyndte derfor at overveje hvordan jeg ville udføre deres jobopgaver, hvis det var mig som var i deres situation. Det første der slog mig ind var, at hvis jeg selv kunne vælge ville jeg helst arbejde med Ruby.

Efter at have googlet lidt fandt jeg ud af, at dette faktisk ville være muligt! Ruby har en Win32 API der gør det muligt at interagere med Windows programmer. Dette gør det eksempelvis muligt at gøre nedenstående:

require 'win32ole' excel = WIN32OLE.new('excel.application') excel.visible = true excel.workbooks.open(test.xls) excel.range('A1').value = 'Så let er det at indsætte en værdi i en celle.'

Det er altså muligt at slippe udenom VBA, selvom jeg tvivler på at der er mange der tør kaste sig ud i det :)

Heldigvis ser det også ud til, at Microsoft er begyndt at fatte hvor forældet VBA er og vil erstatte det med noget de kalder Visual Studio Tools for Applications (VSTA). Du kan læse om det her.

sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først

Regneark er gode at have til databehandling og også nyttige når man skal udvikle algoritmer, men regnearket er en rigtig dum størrelse at bruge i produktion. Det er primært fordi det et macroprogram kun holder til eet bestemt regnearksprogram og ofte kun til een bestemt version af programmet. Det holder ikke at man skal lave meget af sin kode om bare fordi man skal opgradere sin officepakke.

  • 0
  • 0

Ja det er jo lidt en balance. Man skal helst gøre tingene så færdige som muligt, men uden det tager tid fra udviklingsprojekterne.

Faktisk har jeg eksperimenteret lidt med nogle Perl scripts, men så skal man jo først til at installere en Perlfortolker på de maskiner hvor det skal køre. De fleste vil jo også gerne slippe for at skulle taste for meget i en prompt og på GUI fronten er Perl lidt tungt at danse med.

Java er vel et meget godt bud (Jeg kender ikke Ruby). I Jave kan man jo ihvertfald hurtigt lave et simplet GUI.

  • 0
  • 0

Det er interessant nok at bringe Ruby på banen, men jeg ser ikke at det ændrer noget ved måden at styre eller automatisere Excel. Det er blot lidt ændret syntaks.

Det kan vel næppe kaldes en nyhed at instantiere "Excel.Application" og derefter kalde funktionalitet i Excel. Det har man kunnet siden Office 97 via ethvert værktøj, som kunne kalde COM-objekter. VSTO er heller ikke længere nogen nyhed, hvilket jo også ses af datoen på artiklen i ovennævnte link.

Jeg går iøvrigt ud fra at det VSTO og ikke VSTA du ville bruge til opgaven. Se http://www.microsoft.com/danmark/msdn/guid... for en dækkende introduktion til emnet.

Nu skal det ikke lyde som en reklame for MS, men med hensyn til central lagring af Excel funktionalitet, hvor mange brugere kan dele samme funktionalitet, så indeholder den snart 1 år gamle udgave af Sharepoint en service kaldet Excel services, som kunne være interessant at se på for folk med de problemer..

Dybest set synes jeg også at det er synd hvis mange novicer, skal "slås" med VBA, som ellers ligger i den lette ende. Sæt nogen til det, som forstår at udnytte teknologien bedst muligt og lad økonomimedarbejderne om at fokusere på deres kernekompetencer. Om man anvender Ruby eller VBA så ændrer det ikke ved kompleksiteten i selve opgaven.

  • 0
  • 0

Det er da der kæden hopper af....

Først laver man en macro i excel og så skal man slås med at automatisere bagefter. Når så man opgradere officepakken, så er der intet, som virker længere.

Vi sidder også i fælden her på stedet. Een eller anden genial person har for et par år siden købt et økonomistyrings system, som bruger office 2003. Nu kan vi ikke opgadere officepakken, fordi så holder vores økonomistyringssystem op med at virke.... øv øv.

Hvis man vil lave noget, som skal have lidt længere levetid end blot nu og her, så må man da overveje levetiden for de værktøjer som man bruger.

  • 0
  • 0

Hej Flemming

Det er helt korrekt at det bestemt ikke er noget nyt, at man kan kontrollere programmer såsom Excel via programmeringssprog. I mine øjne er der dog markant forskel på hvilke muligheder et sprog som Ruby giver fremfor VBScript og hvad der ellers typisk anvendes.

Jeg vil dog lige slå fast, at det jeg nævner skal ses som et alternativ til VBA metoden og ikke som måden jeg selv ville gøre det på. Som Jørgen også nævner ser jeg ingen grund til at benytte Excel til denne type opgave i det hele taget. Hvis jeg fik udleveret et kæmpe Excel ark med data ville jeg straks ekportere det og behandle det på anden måde.

VSTA var hvad jeg efter lidt hurtig googling fandt frem til som efterfølgeren til VBA. Jeg skal ikke kunne sige om VSTO passer bedre.

Jeg er enig med dig i, at man i det hele taget ikke skal sætte IT novicer til at arbejde med teknologier som VBA. Problemet er at det ofte kræver domæneindsigt og ikke kun IT viden at løse disse opgaver. Det gælder om at få fat på dem der kan begge dele :)

  • 0
  • 0
Bidrag med din viden – log ind og deltag i debatten