Differenza tra Visual Basic 6.0 e VBA

Qual è la differenza tra i due. Ho sempre pensato che VBA fosse una versione un po ‘”paralizzata” di VB, ma quando un amico mi ha chiesto l’altro giorno non avevo idea di quali fossero le reali differenze.

Inoltre, quando si utilizza, ad esempio, Excel, si tratta di VB o VBA?

Per quasi tutti gli scopi di programmazione, VBA e VB 6.0 sono la stessa cosa.

VBA non può compilare il tuo programma in un binario eseguibile. Avrai sempre bisogno dell’host (un file Word e MS Word, ad esempio) per contenere ed eseguire il tuo progetto. Non sarà inoltre ansible creare DLL COM con VBA.

A parte questo, c’è una differenza nell’IDE – l’IDE VB 6.0 è più potente in confronto. D’altra parte, hai una stretta integrazione dell’applicazione host in VBA. Gli oggetti globali dell’applicazione (come “ActiveDocument”) e gli eventi sono disponibili senza dichiarazione, quindi la programmazione specifica dell’applicazione è semplice.

Tuttavia, nulla ti impedisce di triggersre Word, caricare l’IDE VBA e risolvere un problema che non ha alcun rapporto con Word. Non sono sicuro se c’è qualcosa che VB 6.0 può fare (tecnicamente), e VBA non può. Tuttavia, sto cercando un foglio di confronto su MSDN.

VBA è l’acronimo di Visual Basic for Applications e lo è anche il piccolo fratello di VB “per applicazioni”. VBA è effettivamente disponibile in Excel, ma anche nelle altre applicazioni per ufficio.

Con VB, è ansible creare un’applicazione Windows autonoma, che non è ansible con VBA.

È tuttavia ansible per gli sviluppatori “incorporare” VBA nelle proprie applicazioni, come linguaggio di scripting per automatizzare tali applicazioni.

Modifica : dalle FAQ VBA :

D. Che cos’è Visual Basic per le applicazioni?

R. Microsoft Visual Basic for Applications (VBA) è un ambiente di programmazione integrabile progettato per consentire agli sviluppatori di creare soluzioni personalizzate utilizzando tutta la potenza di Microsoft Visual Basic. Gli sviluppatori che utilizzano applicazioni che ospitano VBA possono automatizzare ed estendere la funzionalità dell’applicazione, riducendo il ciclo di sviluppo di soluzioni aziendali personalizzate.

Nota che VB.NET è anche un’altra lingua, che condivide solo la syntax con VB.

Ecco una risposta più tecnica e completa a una vecchia domanda: Visual Basic for Applications (VBA) e Visual Basic (pre.NET) non sono solo lingue simili, sono la stessa lingua. In particolare:

  • Hanno le stesse specifiche : la descrizione indipendente dall’implementazione di ciò che la lingua contiene e che cosa significa. Puoi leggerlo qui: [MS-VBAL]: VBA Language Specification
  • Hanno la stessa piattaforma : compilano entrambi in Microsoft P-Code , che viene a sua volta eseguito dalla stessa macchina virtuale, implementata nella dll msvbvm [x.0] .dll.

In un vecchio libro di riferimento VB che ho trovato l’anno scorso, l’autore (Paul Lomax) ha anche affermato che “VBA” è sempre stato il nome stesso della lingua, sia che fosse usato in applicazioni stand-alone o in contesti embedded (come MS Office ):

“Prima di andare avanti, chiariamo il punto fondamentale: Visual Basic for Applications (VBA) è il linguaggio utilizzato per programmare in Visual Basic (VB) .VB è un ambiente di sviluppo, l’elemento linguistico di quell’ambiente è VBA. ”

Le piccole differenze

Hosted vs stand-alone : in termini pratici, quando la maggior parte della gente dice “VBA”, in particolare significa “VBA se usato in MS Office” e si dice “VB6” come “VBA utilizzato nell’ultima versione del VBA standalone” compilatore (es. Visual Studio 6) “. L’IDE e il compilatore in bundle con MS Office sono quasi identici a Visual Studio 6, con la limitazione che non consente la compilazione di file dll o exe autonomi. Ciò a sua volta significa che le classi definite nei progetti VBA incorporati non sono accessibili dai consumatori COM non incorporati, perché non possono essere registrate.

Sviluppo continuo : Microsoft ha smesso di produrre un compilatore VBA standalone con Visual Studio 6, mentre passavano al runtime .NET come piattaforma di scelta. Tuttavia, il team di MS Office continua a mantenere VBA e ha persino rilasciato una nuova versione (VBA7) con una nuova VM (ora chiamata solo VBA7.dll) a partire da MS Office 2010. L’unica differenza importante è che VBA7 ha sia un 32- e la versione a 64 bit e ha alcuni miglioramenti per gestire le differenze tra i due, in particolare per quanto riguarda le chiamate alle API esterne.

Vuoi confrontare VBA con VB-Classic (VB6 ..) o VB.NET?

VBA (Visual Basic for Applications) è un linguaggio di script basato su vb-classic incorporato nelle applicazioni di Microsoft Office. Penso che le caratteristiche del linguaggio siano simili a quelle di VB5 (mancano solo alcune funzioni integrate), ma:

Hai accesso al documento dell’ufficio per cui hai scritto lo script VBA e quindi puoi ad esempio

  • Scrivi macro (= routine automatizzate per piccole attività ricorrenti nel tuo ufficio-lavoro)
  • Definire nuove funzioni per la formula di cella excel
  • Elabora i dati dell’ufficio

Esempio: imposta il valore di una cella excel

ActiveSheet.Cells("A1").Value = "Foo" 

VBC e -.NET non sono linguaggi di script. Li usi per scrivere applicazioni standalone con IDE separati che non puoi fare con VBA (gli script VBA solo “esistono” in Office)

VBA non ha nulla a che fare con VB.NET (hanno solo una syntax simile).

In realtà è ansible utilizzare VBA per compilare DLL. Le edizioni Office 2000 e Office XP Developer includevano un editor VBA che poteva essere utilizzato per creare DLL da utilizzare come componenti aggiuntivi COM.

Questa funzionalità è stata rimossa nelle versioni successive (2003 e 2007) con l’avvento del software VSTO (VS Tools per Office), anche se ovviamente si potevano ancora creare componenti COM in modo simile senza l’utilizzo di VSTO (o VS.Net) di usando VB6 IDE.

È VBA. VBA indica Visual Basic , Applications Edition e viene utilizzato per macro su documenti Office. Non ha accesso alle funzionalità di VB.NET, quindi è più simile a una versione modificata di VB6, con componenti aggiuntivi in ​​grado di funzionare sul documento (come il foglio di lavoro in VBA per Excel).

VB non è una lingua . VB è un programma che ospita VBA, proprio come Office ospita VBA. VB è un insieme di oggetti App, proprio come Word ed Excel, e un pacchetto di moduli, proprio come in Office.

Quindi puoi scrivere solo codice VBA in VB.

PS questa informazione è nella scheda INFO nella pagina delle domande VB per VB.

Da informazioni VBA

VBA 6, è stato spedito nel 1998 e include una miriade di host con licenza, tra cui: Office 2000 – 2010, AutoCAD, Processbook PI e Visual Basic 6.0 autonomo

VBA è l’acronimo di Visual Basic, Applications Edition e un’implementazione di Visual Basic destinata a essere utilizzata in Office Suite.

La differenza tra loro è che VBA è incorporato nei documenti di Office (è una funzionalità di Office). VB è l’ide / linguaggio per lo sviluppo di applicazioni.

VB (Visual Basic solo fino a 6.0) è un superset di VBA (Visual Basic for Applications). So che altri sono sfuggiti a questo, ma la mia comprensione è che la semantica (cioè il vocabolario) di VBA è inclusa in VB6 (eccetto per oggetti specifici dei prodotti Office), quindi VBA è un sottoinsieme di VB6. La syntax (cioè l’ordine in cui le parole sono scritte) è esattamente la stessa in VBA come sarebbe in VB6, ma la differenza è che gli oggetti disponibili per VBA o VB6 sono diversi perché hanno scopi diversi. Nello specifico, lo scopo di VBA è di automatizzare programmaticamente le attività che possono essere eseguite in MS Office, mentre lo scopo di VB6 è quello di creare EXE standard, controlli ActiveX, DLL ActiveX e EXE ActiveX che possono funzionare autonomamente o in altri programmi come MS Office o Windows.