# Vba --\> ruby

**URL:** <https://www.ruby-forum.com/t/vba-ruby/93816>\
**Category:** IT\
**Created:** [April 11, 2006, 10:39am UTC](https://www.ruby-forum.com/t/vba-ruby/93816 "2006-04-11T10:39:47Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [April 11, 2006, 10:39am UTC](https://www.ruby-forum.com/t/vba-ruby/93816/1 "2006-04-11T10:39:47Z")

</div>

Mi piacerebbe scrivere un tool (sempre che non esista già, io non l’ho  
trovato) per tradurre un sistema scritto in VBA a Ruby.

La via che mi esalterebbe di più sarebbe poter wrappare il codice vb (con un  
minimo di text translation per rubyficarlo) e eseguirlo direttamente in  
ruby, sfruttando la dinamicità di ruby per dare un nuovo significato alle  
keyword di Vb. Fornirei poi delle librerie di base per dare un  
significato  
a oggetti come Collection e a funzioni come UBound, Len, Left, etc…

Un’altra via sarebbe quella di parsare il codice vb in un albero e poi  
generare da lì il codice ruby, ma mi sembra forse un pò un overkill.  
tuttavia potrei divertirmi a imparare un linguaggio funzionale per fare  
questo lavoro…

voi cosa fareste?

PS: faccio pochissimo uso di GUI e non mi interessa tradurre le varie  
forms

## – Chiaroscuro

Liquid Development: [http://liquiddevelopment.blogspot.com/](http://liquiddevelopment.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [April 11, 2006, 12:33pm UTC](https://www.ruby-forum.com/t/vba-ruby/93816/2 "2006-04-11T12:33:47Z")

</div>

Non sono un esperto (e tantomeno un appassionato) della progremmazione  
sotto M$…ma mi chiedo:

- non c’è l’idea di una implementazione di Ruby sotto .Net?
- M$ ha portato VB sotto .Net (e lo sta “abbandonando”) a favore  
di C#  
Ergo: che senso ha (ri)scrivere un “traduttore” da VB a Ruby da zero?

IMHO

Carlo

chiaro scuro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto: Mi piacerebbe scrivere  
un tool (sempre che non esista già, io non l’ho  
trovato) per tradurre un sistema scritto in VBA a Ruby.

La via che mi esalterebbe di più sarebbe poter wrappare il codice vb (con un  
minimo di text translation per rubyficarlo) e eseguirlo direttamente in  
ruby, sfruttando la dinamicità di ruby per dare un nuovo significato alle  
keyword di Vb. Fornirei poi delle librerie di base per dare un  
significato  
a oggetti come Collection e a funzioni come UBound, Len, Left, etc…

Un’altra via sarebbe quella di parsare il codice vb in un albero e poi  
generare da lì il codice ruby, ma mi sembra forse un pò un overkill.  
tuttavia potrei divertirmi a imparare un linguaggio funzionale per fare  
questo lavoro…

voi cosa fareste?

PS: faccio pochissimo uso di GUI e non mi interessa tradurre le varie  
forms

## – Chiaroscuro

Liquid Development: [http://liquiddevelopment.blogspot.com/](http://liquiddevelopment.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [April 11, 2006, 1:04pm UTC](https://www.ruby-forum.com/t/vba-ruby/93816/3 "2006-04-11T13:04:30Z")

</div>

On 4/11/06, Carlo P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Non sono un esperto (e tantomeno un appassionato) della progremmazione  
> sotto M$…ma mi chiedo:
> 
> - non c’è l’idea di una implementazione di Ruby sotto .Net?
> - M$ ha portato VB sotto .Net (e lo sta “abbandonando”) a favore  
> di C#  
> Ergo: che senso ha (ri)scrivere un “traduttore” da VB a Ruby da zero?

Ho un pacco di business logic scritta in Vba Classic che mi fa comodo  
portar  
fuori dall’ambiente MS. L’ambiente [VB.Net](http://VB.Net) inoltre se non erro ha  
abolito i  
variant, che sono fondamentali invece per un framework che ho scritto  
per  
VBA e sfrutta il dinamismo dei variant.

## – Chiaroscuro

Liquid Development: [http://liquiddevelopment.blogspot.com/](http://liquiddevelopment.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [April 11, 2006, 3:32pm UTC](https://www.ruby-forum.com/t/vba-ruby/93816/4 "2006-04-11T15:32:32Z")

</div>

On 4/11/06, Matteo V. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On 4/11/06, chiaro scuro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > Ho un pacco di business logic scritta in Vba Classic che mi fa comodo  
> > portar  
> > fuori dall’ambiente MS.
> 
> Lodevole intento!

Allora se trovo il coraggio di partire con questo progettino vi  
racconterò  
come ho ucciso e inglobato il mostro 🙂

## – Chiaroscuro

Liquid Development: [http://liquiddevelopment.blogspot.com/](http://liquiddevelopment.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [April 11, 2006, 2:58pm UTC](https://www.ruby-forum.com/t/vba-ruby/93816/5 "2006-04-11T14:58:40Z")

</div>

On 4/11/06, chiaro scuro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Ho un pacco di business logic scritta in Vba Classic che mi fa comodo portar  
> fuori dall’ambiente MS.

Lodevole intento!

> L’ambiente [VB.Net](http://VB.Net) inoltre se non erro ha abolito i  
> variant, che sono fondamentali invece per un framework che ho scritto per  
> VBA e sfrutta il dinamismo dei variant.

Non mi pare. I variant sono tuttora supportati, anzi nel gruppo di  
sviluppo di [VB.Net](http://VB.Net) c’è il bravissimo Eric Meijer, che sta lavorando  
per estendere la portata del late binding.

Matteo
