Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa procedura dettagliata illustra come esporre un oggetto in un componente aggiuntivo VSTO ad altre soluzioni di Microsoft Office, tra cui Visual Basic for Applications (VBA) e componenti aggiuntivi COM VSTO.
Si applica a: Le informazioni contenute in questo argomento si applicano ai progetti di componente aggiuntivo VSTO. Per altre informazioni, vedere Funzionalità disponibili per l'applicazione e il tipo di progetto di Office.
Anche se questa procedura dettagliata usa Excel in modo specifico, i concetti illustrati nella procedura dettagliata sono applicabili a qualsiasi modello di progetto di componente aggiuntivo VSTO fornito da Visual Studio.
In questa procedura dettagliata sono illustrati i task seguenti:
Definizione di una classe che può essere esposta ad altre soluzioni Office.
Esposizione della classe ad altre soluzioni Office.
Chiamata di un metodo della classe dal codice VBA.
Annotazioni
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE.
Prerequisiti
Per completare questa procedura dettagliata sono necessari i componenti seguenti:
Edizione di Visual Studio che include gli strumenti di sviluppo di Microsoft Office. Per altre informazioni, vedere Configurare un computer per sviluppare soluzioni Office.
Microsoft Excel
Creare il progetto di componente aggiuntivo VSTO
Il primo passaggio consiste nel creare un progetto di componente aggiuntivo VSTO per Excel.
Per creare un nuovo progetto
Creare un progetto di componente aggiuntivo VSTO di Excel con il nome ExcelImportData usando il modello di progetto del componente aggiuntivo VSTO di Excel. Per altre informazioni, vedere Procedura: Creare progetti di Office in Visual Studio.
Visual Studio apre il file di codice ThisAddIn.cs o ThisAddIn.vb e aggiunge il progetto ExcelImportData a Esplora soluzioni.
Definire una classe che è possibile esporre ad altre soluzioni Office
Lo scopo di questa procedura dettagliata è chiamare il metodo ImportData di una classe denominata AddInUtilities nell'Add-in VSTO dal codice VBA. Questo metodo scrive una stringa nella cella A1 del foglio di lavoro attivo.
Per esporre la AddInUtilities classe ad altre soluzioni Office, è necessario rendere la classe pubblica e visibile a COM. È inoltre necessario esporre l'interfaccia IDispatch nella classe . Il codice nella procedura seguente illustra un modo per soddisfare questi requisiti. Per ulteriori informazioni, vedere Chiamare il Codice nei Componenti Aggiuntivi VSTO da Altre Soluzioni Office.
Per definire una classe che è possibile esporre ad altre soluzioni Office
Scegliere Aggiungi classe dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento modificare il nome della nuova classe in AddInUtilities e fare clic su Aggiungi.
Il file AddInUtilities.cs o AddInUtilities.vb viene aperto nell'editor di codice.
Aggiungere le direttive seguenti all'inizio del file.
Sostituire la
AddInUtilitiesclasse con il codice seguente.[ComVisible(true)] public interface IAddInUtilities { void ImportData(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class AddInUtilities : IAddInUtilities { // This method tries to write a string to cell A1 in the active worksheet. public void ImportData() { Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet; if (activeWorksheet != null) { Excel.Range range1 = activeWorksheet.get_Range("A1", System.Type.Missing); range1.Value2 = "This is my data"; } } }Questo codice rende la
AddInUtilitiesclasse visibile a COM e aggiunge ilImportDatametodo alla classe . Per esporre l'interfaccia IDispatch , laAddInUtilitiesclasse ha anche l'attributo ClassInterfaceAttribute e implementa un'interfaccia visibile a COM.
Esporre la classe ad altre soluzioni Office
Per esporre la AddInUtilities classe ad altre soluzioni Office, sovrascrivere il metodo RequestComAddInAutomationService nella classe ThisAddIn. Nell'override, restituisci un'istanza della classe AddInUtilities.
Per esporre la classe AddInUtilities ad altre soluzioni Office
In Esplora soluzioni, espandere Excel.
Fare clic con il pulsante destro del mouse su ThisAddIn.cs o ThisAddIn.vb e quindi scegliere Visualizza codice.
Aggiungere il codice seguente alla
ThisAddInclasse .Scegliere Compila soluzione dal menu Compila.
Verificare che la soluzione venga compilata senza errori.
Testare il componente aggiuntivo VSTO
È possibile accedere alla classe AddInUtilities da diversi tipi di soluzioni di Office. In questa procedura dettagliata si userà il codice VBA in una cartella di lavoro di Excel. Per ulteriori informazioni sugli altri tipi di soluzioni di Office che è possibile usare, vedere Call code in VSTO Add-ins from other Office solutions.
Per testare il componente aggiuntivo VSTO
Premere F5 per eseguire il progetto.
In Excel salvare la cartella di lavoro attiva come cartella di lavoro di Excel Macro-Enabled (*.xlsm). Salvarlo in una posizione comoda, ad esempio il desktop.
Sulla barra multifunzione fare clic sulla scheda Sviluppo .
Annotazioni
Se la scheda Sviluppatore non è visibile, è prima necessario visualizzarla. Per altre informazioni, vedere Procedura: Visualizzare la scheda sviluppatore sulla barra multifunzione.
Nel gruppo Codice fare clic su Visual Basic.
Verrà aperto Visual Basic Editor.
Nella finestra Progetto fare doppio clic su ThisWorkbook.
Verrà aperto il file di codice per l'oggetto
ThisWorkbook.Aggiungere il codice VBA seguente al file di codice. Questo codice ottiene innanzitutto un oggetto COMAddIn che rappresenta il componente aggiuntivo VSTO ExcelImportData . Il codice usa quindi la proprietà Object dell'oggetto COMAddIn per chiamare il
ImportDatametodo .Sub CallVSTOMethod() Dim addIn As COMAddIn Dim automationObject As Object Set addIn = Application.COMAddIns("ExcelImportData") Set automationObject = addIn.Object automationObject.ImportData End SubPremere F5.
Verificare che alla cartella di lavoro sia stato aggiunto un nuovo foglio dati importato . Verificare anche che la cella A1 contenga la stringa Questi sono i miei dati.
Uscire da Excel.
Passaggi successivi
Per altre informazioni sulla programmazione dei componenti aggiuntivi VSTO, vedere gli argomenti seguenti:
Usare la
ThisAddInclasse per automatizzare l'applicazione host ed eseguire altre attività nei progetti di componente aggiuntivo VSTO. Per altre informazioni, vedere Programmare componenti aggiuntivi VSTO.Creare un riquadro attività personalizzato in un componente aggiuntivo VSTO. Per altre informazioni, vedere Riquadri attività personalizzati e Procedura: Aggiungere un riquadro attività personalizzato a un'applicazione.
Personalizzare la barra multifunzione di un componente aggiuntivo VSTO. Per altre informazioni, vedere Panoramica della barra multifunzione e Procedura: Introduzione alla personalizzazione della barra multifunzione.
Contenuti correlati
- Programmare componenti VSTO aggiuntivi
- Chiamare il codice nei componenti aggiuntivi VSTO da altre soluzioni Office
- Sviluppare soluzioni Office
- Procedura: Creare progetti di Office in Visual Studio
- Architettura dei componenti aggiuntivi VSTO
- Personalizzare le funzionalità dell'interfaccia utente usando interfacce di estendibilità