La risposta è semplice: quasi tutto. Ovvero, in senso più tecnico, il MODELLO A OGGETTI dei diversi mondi di Microsoft Office: Word, Excel, Outlook ecc., nonché lo stesso Office e altre cose come ADO o ADO .NET (v. più avanti). Con tutte le proprietà e metodi di pertinenza di ciascun oggetto (Si tratta dell'OOP, bellezza!).
Questo post...icino è rivolto ai principianti, che fanno molta confusione in merito. Ma, se mi è permessa una battuta bonaria, anche qualche esperto contribuisce. Ad esempio in qualche post mi capita di leggere routine molto, ma molto banali (come esplorare con delle MsgBox, nientemeno!, le celle di un intervallo Excel 3 x 2) dall'interno dell'add-in di VB .NET Visual Studio Tools per Office (VSTO). Troppa grazia? Giudichi ognuno. Sta di fatto che il codice base, relativo, nell'esempio accennato, è del tipo seguente:
For Each MiaRiga In Range("Mia Zona")
For Each MiaCella In MiaRiga
MsgBox .Address(false, False) & VbLF & .Value
Next MiaCella
Next MiaRiga
Questo è solo un post. Ultrarapido. Pertanto mi limito a segnalare, a buoni intenditori e a futura memoria dei principianti, dove, oggi come oggi, si può sfruttare l'"essenziale" del codice macro di Office & C.:
- macro VBA, incorporate nei vari documenti (.XLS, .DOC ecc.)
- macro VSTO create in ambiente VB.NET che si traducono, alla fine della fiera, in precise DLL esterne ai predetti documenti privi di macro classiche, ma che agiscono ugualmente nell'ombra (in background);
- richiami tramite OLE AUTOMATION (informarsi, chi non conoscesse tale tecnologia) delle varie librerie "a oggetti" dall'interno sia di un documento Office (macro VBA o, volendo, VSTO), sia da un'applicazione chiusa (.EXE) sviluppata con VB .NET o, persino, l'ancor vivo VB 6.0.
In TUTTI questi casi occorre che Office sia installata nel PC dell'utente (Office 2003 o successiva, coi VSTO).
Concludo precisando che tra VBA e VSTO non mancano differenze. Anzitutto i VSTO garantiscono un elevato livello di security, specie in ambienti distribuiti. Sul piano sostanziale, le marce in più sono, soprattutto il supporto del C# (ma le macro in tale linguaggio hanno solo difformità sintattiche rispetto a quelle VB) e l'accesso a database tramite ADO .NET
.
Meditate, gente, meditate... E studiate (se ne avete tempo).
?>