Pagina 1 di 1

[Risolto] Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: giovedì 9 novembre 2023, 8:33
da markinson
Salve a tutti! :)

Mi scuso innanzitutto se non ho pubblicato la discussione nella giusta sezione, ma sono molto disorientato, con pochissime idee e quelle poche estremamente confuse. Per cui: siate indulgenti, vi prego.

La questione in premessa è la seguente: ho recuperato, per curiosità personale, un libro scolastico dal titolo "Introduzione alla programmazione in Visual Basic for Applications" (autore Claudio Fornaro).
Come accennato, per curiosità personale e perché al lavoro comunque si utilizza il pacchetto Microsoft Office, ho iniziato a leggerlo, con il principale intento di provare a capire qualcosina di programmazione in VBA.
Tuttavia, sia per la mia "filosofia di vita" sia perché a casa non ho altre soluzioni, posso per il momento esercitarmi solo appoggiandomi a LibreOffice oppure OpenOffice e, in particolare, al loro Basic.

Avrei già pronta una batteria di domande, ma, prima di iniziare, ho ritenuto opportuno chiarire la mia posizione, per comprendere la fattibilità di studiare un libro scritto per VBA, pur potendomi solo esercitare solo in ambiente (per dire) OpenOffice Basic: è realizzabile questo mio intento oppure sono due mondi troppo lontani?

Grazie per ogni suggerimento che, anticipo, sarà propedeutico probabilmente a nuove richieste di aiuto che ho già in caldo ... :)

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: venerdì 10 novembre 2023, 18:48
da Gaetanopr
Ciao, il libro ti servirà per "imparare a programmare", imparare a ragionare da programmatore usando in questo caso il Visual Basic, quindi all'uso dei cicli delle funzioni e a tutti gli strumenti fondamentali per scrivere "programmi" io ho letto guide su diversi linguaggi e tutte mi sono state utili (a risolvere problemi) a prescindere se usi LO - MO o altro (diciamo che l'importante è apprendere le tecniche oltre al linguaggio), sono le tecniche apprese che ti torneranno utili.
Naturalmente se vuoi utilizzare LibreOffice devi necessariamente leggere delle guide per il Basic e le API di LO.

Saluti

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: sabato 11 novembre 2023, 16:40
da markinson
Gentilissimo Gaetanopr,
grazie innanzitutto per la risposta e le tue puntuali considerazioni.

Avendo un'infarinata dell'era scolastica di programmazione, non posso che condividere quanto da te affermato, soprattutto circa la necessità di approfondire poi nello specifico l'ambiente Basic di Apache OpenOffice ovvero LibreOffice.

Tuttavia, già in principio, mi trovo in difficoltà. Da questa mia difficoltà è scaturita la domanda del thread.
Infatti, come tutti i buoni libri scolastici, il volume in mio possesso propone degli esercizi che, a mio modesto avviso, vanno sempre concretamente provati per saggiare la bontà di quanto poi programmato dal singolo.

Ebbene, mi sono trovato, per esempio, con questo primo problema, che illustro qui soltanto per cercare di spiegarmi meglio: eseguire la sottrazione di due numeri interi inseriti da tastiera.

Nel libro veniva suggerita la seguente serie di istruzioni in VBA:

Codice: Seleziona tutto

Private Sub CommandButton1_Click()
X = InputBox("Inserisci il primo valore")
Y = InputBox("Inserisci il secondo valore")
S = X - Y
Msgbox (S)
End Sub
che, per cercare di far "girare" sotto Basic, ho dovuto trasformare in:

Codice: Seleziona tutto

Private Sub CommandButton1_Click()
Dim X As Integer
Dim Y As Integer
Dim S As Integer
X = 0
Y = 0
S = 0
X = InputBox("Inserisci il primo valore")
Y = InputBox("Inserisci il secondo valore")
S = X - Y
Msgbox (S)
End Sub
Modificato come sopra descritto il codice, le istruzioni sono state correttamente eseguite in Basic e il risultato è stato restituito in modo altrettanto corretto (senza l'inizializzazione delle variabili, invece, mi venivano valori errati).

Questa è solo una piccola esemplificazione.
Non penso che sia stato scritto male l'esempio in VBA nel libro; piuttosto Basic necessita di un, diciamo, migliore dettaglio. Questo ho creduto.
Sarà così? Non lo so francamente.

Comunque, fatte tali ulteriori precisazioni, proverò a chiedere qui sul forum, consapevole che sto leggendo un libro per VBA che devo però in qualche maniera declinare in ambiente Basic di OO o LO.

Grazie in anticipo per ogni ulteriore chiarimento e/o suggerimento! ;)

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: sabato 11 novembre 2023, 17:07
da Gaetanopr
Ricordati che le InputBox restituiscono sempre del testo, in Basic come in MO non è obbligatorio dichiarare e inizializzare le variabili come in altri linguaggi, però per non incorrere ad errori improvvisi che ti faranno girare la testa è sempre meglio procedere alla dichiarazione delle variabili e non all' inizializzazione come avviene per Python che è obbligatorio.
Ti consiglio di leggere questa guida https://www.brescianet.com/appunti/vari ... ce_ita.pdf
Ti basta fare così

Codice: Seleziona tutto

Private Sub CommandButton1_Click()
Dim X As Integer
Dim Y As Integer
Dim S As Integer
X = InputBox("Inserisci il primo valore")
Y = InputBox("Inserisci il secondo valore")
S = X + Y
Msgbox (S)
End Sub
Oppure puoi convertire il testo in valore numerico, naturalmente se digiti un testo non convertibile la macro andrà in errore.

Codice: Seleziona tutto

Private Sub CommandButton1_Click()
X = InputBox("Inserisci il primo valore")
Y = InputBox("Inserisci il secondo valore")
S = Int(X) + 	Int(Y)
Msgbox (S)
End Sub

In questi casi è sempre meglio effettuare una verifica del dato digitato tramite la funzione IsNumeric

Saluti

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: sabato 11 novembre 2023, 17:48
da markinson
:super:

Grazie ancora una volta del tuo tempo e dei suggerimenti!

Pur non volendo andare fuori argomento, visto che la questione posta da me nel thread aveva carattere puramente generale e ricognitivo (diciamo così), se posso, alcune considerazioni aggiuntive.
Gaetanopr ha scritto: sabato 11 novembre 2023, 17:07 Ricordati che le InputBox restituiscono sempre del testo ...
Il dubbio mi era venuto! Tanto è vero che per "forzare" la variabile ad essere numerica mi ero inventato la seguente espressione:

Codice: Seleziona tutto

X = InputBox("Inserisci il primo valore") + 0
Gaetanopr ha scritto: sabato 11 novembre 2023, 17:07 ... per non incorrere ad errori improvvisi che ti faranno girare la testa è sempre meglio procedere alla dichiarazione delle variabili e non all' inizializzazione come avviene per Python che è obbligatorio.
Sono ricorso alla inizializzazione un po' per (vecchissima) deformazione (quando secoli addietro programmavo qualcosina), per altro verso perché facendo girare più volte le istruzioni mi venivano fuori risultati completamente errati.
Gaetanopr ha scritto: sabato 11 novembre 2023, 17:07 Ti consiglio di leggere questa guida https://www.brescianet.com/appunti/vari ... ce_ita.pdf
Andrò a prendere senz'altro la guida! Ho già creato una cartella ad hoc per la sperimentazione della "mia" programmazione ... :oops:
Gaetanopr ha scritto: sabato 11 novembre 2023, 17:07 In questi casi è sempre meglio effettuare una verifica del dato digitato tramite la funzione IsNumeric
Cercherò di studiarmi anche questa funzione, ma davvero sono alle primissime armi in questo mondo e, francamente, non saprei nemmeno come utilizzarla al momento ... :P

Grazie ancora!

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: venerdì 17 novembre 2023, 7:02
da patel
http://www.pitonyak.org/oo.php
Qui troverai molti esempi di programmazione

Re: Visual Basic for Applications (VBA) e OpenOffice Basic: è possibile una "conciliazione-mediazione"?

Inviato: domenica 19 novembre 2023, 8:13
da markinson
Grazie, patel! :super:

Ho già inserito il sito da te suggerito tra i miei preferiti e scaricato il seguente materiale:
  • OpenOffice.org Macros Explained.odt V4.1(aggiornato al 18 settembre 2023!),
  • Incomplete comments on VBA,
  • PDF Incomplete comments on VBA,
laddove, per gli ultimi due documenti (aggiornati al 2007), nella descrizione l'autore Andrew Pitonyak espressamente afferma: "Some years ago, I compared VBA and OOo Basic based on the language syntax. I never finished.".

In pratica, almeno dal titolo del file, esattamente ciò che cercavo! ;)

Ho ritenuto comunque di darmi una specie di metodo, ossia di studiare in progressione, evitando di saltare da una risorsa all'altra. Adesso desidererei terminare, se e quando possibile, il testo citato nell'incipit del thread, poi passerò pian piano alle altre risorse.
Purtroppo mi sono già un po' arenato QUI, forse non sono stato chiaro a sufficienza ...