|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
[VB] Devo imparare VBA e VB.net (non il VB6) da dove comincio?
La premessa sarebbe che CMQ VB.net = VBA+VB6, è vero?
Mi sembra d'aver capito che VBA è un VB.net strozzato e limitato al contesto Suite Office di Microsoft corretto? Quote:
Che roadmap formativa posso seguire? Il mio target è imparare ad usarlo sufficientemente ed in fretta, lo skill anche piano piano, ma orientarmici in fretta è fondamentale. Potete aiutamri plz? Vengo dal C, PHP, un po di Java, SQL e ABL (ma questo è un po' fuori contesto perchè di IV generazione). [EDIT: collezione link] [Visual Studio] Come impostare breakpoint per ogni definizione di SUB? [VB] Me, My e Application.DoEvents(): chi mi spiega? [VB] Testare se una data è maggiore di 2 mesi fa: come fare? Dove posso trovare "Crystal Reports v5"?! [VB] Realizzare un timeout, come? [MSDN] Ma scaricarlo per averlo offline è possibile? Si paga? E' gratuito? [VB] Richiamo funzione di sistema "Shell": s'accorge di mancate esecuzioni? [VB] Aggiorno tableadapter e VB scazza alla grande... unire file excel [VB] Strano warning: interfaccia IActionPeer... (all'avvio)
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 30-06-2009 alle 19:49. |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Allora, io mi sono attrezzato di VS2005 stra patchato alla versione di oggi.
Le uniche 2 cose che capisco sono l'applicazione console e quella GUI. Di quella grafica dall'IDE vedo questo: Codice:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class Codice:
Module Module1 Sub Main() End Sub End Module
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 26-03-2009 alle 14:27. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() ![]() Nono, siamo fuori strada. Kilometri fuori strada. VBA e VB Net sono come la Luna e Marte. Se decidi di impararli tutti e due contemporaneamente, non cadere nella tentazione di trovare similitudini o di copiare codice dall'uno all'altro. Semmai VBA è un VB6 "strozzato", anche se si potrebbe discutere anni su questo, e non ne ho nessuna voglia... ![]() Sì, come bel progetto per imparare VBA puoi ad esempio avere un semplice DB Access ( 1 o 2 tabelle ), prelevare i dati in Excel, eseguire alcuni calcoli ed esportarli su Word... |
|
![]() |
![]() |
![]() |
#4 | ||||
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]() Quote:
"Luna e Marte" CMQ non si capisce proprio cosa vuol dire però... Quote:
Quote:
Si usano anche le altre componenti della Suite Office come PowerPoint o non ha senso farlo?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 26-03-2009 alle 16:10. |
||||
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
It's correct?
![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#6 | ||||
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Non era mia intenzione enfatizzare alcunchè. Era semplice e autentico stupore, il mio. Ne ho sentite tante su VB, ma questa ancora no. VB NET = VB6 + VBA. Originale ! ![]() E' incredibile di quante libere interpretazioni su VB ci siano in giro... Quote:
Beh, la puoi vedere così : la Luna è VBA, la Terra è VB6, Marte è .NET... ![]() Quote:
![]() Quote:
Si possono automatizzare via VBA praticamente tutte le applicazioni della suite Office, ma quella che forse conviene imparare più a fondo è Excel... Infine un Modulo VBA è grosso modo assimilabile al concetto di "classe statica", un buon posto in cui inserire : - variabili globali - Public - costanti globali - Public Const - procedure che ritornano valori - Public Function - procedure che non ritornano valori ( procedure void... ) - Public Sub - dichiarazioni di richiamo a funzioni API - Public Declare Function insomma tutto il codice parametrizzato e riutilizzabile. |
||||
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Non è colpa mia se da Microsoft conta + il brand e la commercialità delle cose piuttosto che generare del caos.
IMHO potevano fare C# e lasciare stare VB.net. Quote:
Nel nostro sistema solare siamo noi che giriamo attorno al Sole e la luna intorno a noi e Marte è in 1 orbita più esterna della nostra. Quindi che cavaolo vuoi intendere tu scusa? ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Al di là di cosa intenda mi sembra azzeccata, VBA somiglia molto al VB6, diciamo che ne è una versione più limitata e quindi gli gira intorno, VB.Net è tutta un'altra cosa (un altro pianeta, un'altra orbita).
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
- A casa mia il Pesce D'Aprile non si fa di 26 Marzo. ![]() @wingman87 : grazie per la comprensione. Almeno tu. ![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Parlando di libri (cartacei), ho visto che ci sono 4 rami:
1] Excel (il + diffuso) Microsoft Excel 2007 Visual Basic for applications. Con CD-ROM - Reed Jacobson ![]() 2] Access (un po' - diffuso) 3] Word (raro) 4] VBA Generico (raro)
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Essendo VBA un VB-for-Application chiaramente è quasi impossibile imbattersi in un manuale che ne tratta indipendentemente dall'applicativo di riferimento.
In ambito Office personalmente la vedo così : - Excel VBA : sicuramente il matrimonio meglio riuscito. Se mastichi l'inglese dai un'occhiata ai manuali di J. Walkenbach, come questo : http://eu.wiley.com/WileyCDA/WileyTi...470044012.html - Access VBA : una bella spanna sotto ad Excel. Personalmente lo odio. Ormai uso Access solo come serbatoio-dati. - Word VBA : può avere un suo perchè ( creazione di documenti interattivi ecc... ), ma da qui a consigliare di spendere 30 o più € per un manuale che parla solo di Word VBA...beh... |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
CMQ MarcoGG scusami se a volte me la sono presa, ma avevo paura che mi stessi prendendo in giro.
![]() Ho realizzato le mie prime elaborazioni in VBA: Excel (conteggio di vocali in nominativo telefonico e roba del genere), peccato che l'ho creato con Excel 2003 e adesso in Excel 2007 non so come passare alla sezione VBA. ![]() Versione nuova --> vita nuova e io mi smarrisco ![]() ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 08-04-2009 alle 23:14. |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Perchè faccio fatica a capire tutti gli oggetti con cui posso interagire: come si chiamano e quali sono e quali proprietà hanno. Sto facendo uso massivo del tasto "F1" e di Google ... mi vergogno ma è così. ![]() Voglio diventare bravo d'automatizzare il lavoro della segretaria per portarla a ... ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 08-04-2009 alle 23:15. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
![]() ![]() ![]() ![]() , non riesco ad arrivare al codice di quelle 3-4 procedure (Sub si chiamano giusto?) del mio modulo. ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 08-04-2009 alle 23:27. |
![]() |
![]() |
![]() |
#15 | |||
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Excel 2007 l'ho usato ancora poco finora, ma penso ci sia ugualmente il Menu : Visualizza / Barre degli Strumenti / Strumenti di Controllo >> sono gli strumenti di VBA, un Click su Visualizza Codice, e sei nell'editor. Quote:
![]() Google non è cattiva come idea. E' forse il miglior "manuale" che esiste, quando non si ha voglia di imparare tutto da zero. Oppure un buon manuale che sia ricco di esempi pratici da seguire... Devi scegliere tu. Quote:
![]() |
|||
![]() |
![]() |
![]() |
#16 | ||
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Quote:
Ma solitamente i dati di connessione non stanno in file d'include? Per le connesioni al DB non c'è proprio il tutor apposito? CMQ questo è la mia prima procedura che ho scritto e scatta alla pressione di un pulsante dentro una pagina Excel di nominativi d'azienda. Codice:
Public Sub pVocalCount() Dim vlSw As Boolean vlSw = False '*** variabili per il sheet *** Dim viRiga As Integer viRiga = 2 Dim vcStr As String Dim viIdxStr As Integer '*** variabili per le vocali *** Dim viVocalCount As Integer Dim viParzialCount As Integer Dim viIdxVocal As Integer Dim acVocal(0 To 4) As String acVocal(0) = "a" acVocal(1) = "e" acVocal(2) = "i" acVocal(3) = "o" acVocal(4) = "u" 'Cicla le righe Do While vlSw = False viParzialCount = 0 vcStr = Worksheets(1).Range("A" & Trim(Str(viRiga))).Value If vcStr <> "" Then For viIdxVocal = 0 To 4 For viIdxStr = 1 To Len(vcStr) If acVocal(viIdxVocal) = LCase(Mid(Trim(vcStr), viIdxStr, 1)) Then viVocalCount = viVocalCount + 1 viParzialCount = viParzialCount + 1 End If Next viIdxStr Next viIdxVocal MsgBox "Nominativo: " & vcStr MsgBox "Vocali contate nel nominativo: " & Str(viParzialCount) End If 'Cambio nominativo se c'è, altrimenti esco dal ciclo If Worksheets(1).Range("A" & Trim(Str(viRiga + 1))).Value <> "" Then viRiga = viRiga + 1 Else vlSw = True End If Loop MsgBox "Vocali totali contate: " & Str(viVocalCount) End Sub Cosa c'è di male nella procreazione scusa? ![]() Di mandare un missile in orbita col VB proprio non me la sento ... poveri astronauti! ![]() ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 13-04-2009 alle 00:10. |
||
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
CMQ tutti qui in sezione assumiamo come circa giusto il modello:
![]() ?! ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Ma tutti sti nomi che incontro: COM, OCX, OLE, DAO, ecc ... che cavolo sono? Sono tutti importanti e devo impararli?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 13-04-2009 alle 00:44. |
![]() |
![]() |
![]() |
#19 | ||
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Quote:
, è tipo il tuo esercizio d'esempio. Se mi date una mano a realizzare qualcosa di simile vi bacio il --> ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 13-04-2009 alle 00:42. |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:50.