Procédure pas à pas : programmation Office (C# et Visual Basic)Walkthrough: Office Programming (C# and Visual Basic)

Visual Studio offre des fonctionnalités dans C# et Visual Basic qui améliorent la programmation Microsoft Office.Visual Studio offers features in C# and Visual Basic that improve Microsoft Office programming. Les fonctionnalités utiles de C# incluent des arguments nommés et facultatifs ainsi que des valeurs de retour de type dynamic.Helpful C# features include named and optional arguments and return values of type dynamic. Dans la programmation COM, vous pouvez omettre le mot clé ref et accéder aux propriétés indexées.In COM programming, you can omit the ref keyword and gain access to indexed properties. Les fonctionnalités de Visual Basic incluent les propriétés implémentées automatiquement, les instructions dans les expressions lambda et les initialiseurs de collection.Features in Visual Basic include auto-implemented properties, statements in lambda expressions, and collection initializers.

Les deux langages autorisent l'incorporation d'informations de type, qui permet de déployer des assemblys interagissant avec les composants COM sans déployer les assemblys PIA (Primary Interop Assemblies) sur l'ordinateur de l'utilisateur.Both languages enable embedding of type information, which allows deployment of assemblies that interact with COM components without deploying primary interop assemblies (PIAs) to the user's computer. Pour plus d’informations, consultez Procédure pas à pas : incorporation de types provenant d’assemblys managés.For more information, see Walkthrough: Embedding Types from Managed Assemblies.

Cette procédure pas à pas illustre ces fonctionnalités dans le contexte de la programmation Office, mais beaucoup d’entre elles sont aussi utiles en programmation générale.This walkthrough demonstrates these features in the context of Office programming, but many of these features are also useful in general programming. Dans la procédure pas à pas, vous allez utiliser une application de complément Excel pour créer un classeur Excel.In the walkthrough, you use an Excel Add-in application to create an Excel workbook. Vous créerez ensuite un document Word contenant un lien vers le classeur.Next, you create a Word document that contains a link to the workbook. Enfin, vous apprendrez à activer et désactiver la dépendance d’assembly PIA.Finally, you see how to enable and disable the PIA dependency.

PrérequisPrerequisites

Pour effectuer cette procédure pas à pas, Microsoft Office Excel et Microsoft Office Word doivent être installés sur votre ordinateur.You must have Microsoft Office Excel and Microsoft Office Word installed on your computer to complete this walkthrough.

Si vous utilisez un système d'exploitation antérieur à Windows VistaWindows Vista, assurez-vous que .NET Framework 2.0.NET Framework 2.0 est installé.If you are using an operating system that is older than Windows VistaWindows Vista, make sure that .NET Framework 2.0.NET Framework 2.0 is installed.

Note

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. L’édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments.The Visual Studio edition that you have and the settings that you use determine these elements. Pour plus d’informations, consultez Personnalisation de l’IDE.For more information, see Personalizing the IDE.

Pour configurer une application de type complément ExcelTo set up an Excel Add-in application

  1. Démarrez Visual Studio.Start Visual Studio.

  2. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet.On the File menu, point to New, and then click Project.

  3. Dans le volet Modèles installés, développez Visual Basic ou Visual C#, Office, puis cliquez sur l’année de version du produit Office.In the Installed Templates pane, expand Visual Basic or Visual C#, expand Office, and then click the version year of the Office product.

  4. Dans le volet Modèles, cliquez sur Complément Excel <version>.In the Templates pane, click Excel <version> Add-in.

  5. Regardez en haut du volet Modèles pour vérifier que .NET Framework 4, ou version ultérieure, apparaît dans la zone Framework cible.Look at the top of the Templates pane to make sure that .NET Framework 4, or a later version, appears in the Target Framework box.

  6. Tapez un nom pour votre projet dans la zone Nom, si vous le souhaitez.Type a name for your project in the Name box, if you want to.

  7. Cliquez sur OK.Click OK.

  8. Le nouveau projet s’affiche dans l’Explorateur de solutions.The new project appears in Solution Explorer.

Pour ajouter des référencesTo add references

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet, puis cliquez sur Ajouter une référence.In Solution Explorer, right-click your project's name and then click Add Reference. La boîte de dialogue Ajouter une référence s’affiche.The Add Reference dialog box appears.

  2. Sous l’onglet Assemblys, sélectionnez Microsoft.Office.Interop.Excel, version <version>.0.0.0 (pour plus d’informations sur les numéros de version des produits Office, consultez Versions Microsoft),dans la liste Nom du composant, puis maintenez la touche CTRL enfoncée et sélectionnez Microsoft.Office.Interop.Word, version <version>.0.0.0.On the Assemblies tab, select Microsoft.Office.Interop.Excel, version <version>.0.0.0 (for a key to the Office product version numbers, see Microsoft Versions), in the Component Name list, and then hold down the CTRL key and select Microsoft.Office.Interop.Word, version <version>.0.0.0. Si les assemblys n’apparaissent pas, vous devez vérifier qu’ils sont installés et s’affichent (consultez Guide pratique pour installer les assemblys PIA (Primary Interop Assembly) d’Office).If you do not see the assemblies, you may need to ensure they are installed and displayed (see How to: Install Office Primary Interop Assemblies).

  3. Cliquez sur OK.Click OK.

Pour ajouter les instructions Imports ou les directives using nécessairesTo add necessary Imports statements or using directives

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le fichier ThisAddIn.vb ou ThisAddIn.cs, puis cliquez sur Afficher le code.In Solution Explorer, right-click the ThisAddIn.vb or ThisAddIn.cs file and then click View Code.

  2. Ajoutez les instructions Imports suivantes (Visual Basic) ou les directives using (C#) en haut du fichier de code, si elles ne sont pas déjà présentes.Add the following Imports statements (Visual Basic) or using directives (C#) to the top of the code file if they are not already present.

    using System.Collections.Generic;
    using Excel = Microsoft.Office.Interop.Excel;
    using Word = Microsoft.Office.Interop.Word;
    
    Imports Microsoft.Office.Interop
    

Pour créer une liste de comptes bancairesTo create a list of bank accounts

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet, cliquez sur Ajouter, puis sur Classe.In Solution Explorer, right-click your project's name, click Add, and then click Class. Nommez la classe Account.vb si vous utilisez Visual Basic ou Account.cs si vous utilisez C#.Name the class Account.vb if you are using Visual Basic or Account.cs if you are using C#. Cliquez sur Ajouter.Click Add.

  2. Remplacez la définition de la classe Account par le code suivant :Replace the definition of the Account class with the following code. Les définitions de classe utilisent les propriétés implémentées automatiquement.The class definitions use auto-implemented properties. Pour plus d’informations, consultez Propriétés implémentées automatiquement.For more information, see Auto-Implemented Properties.

    class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
    }
    
    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Pour créer une liste bankAccounts qui contient deux comptes, ajoutez le code suivant à la méthode ThisAddIn_Startup dans ThisAddIn.vb ou ThisAddIn.cs.To create a bankAccounts list that contains two accounts, add the following code to the ThisAddIn_Startup method in ThisAddIn.vb or ThisAddIn.cs. Les déclarations de liste utilisent les initialiseurs de collection.The list declarations use collection initializers. Pour plus d’informations, consultez Initialiseurs de collection.For more information, see Collection Initializers.

    var bankAccounts = new List<Account> 
    {
        new Account 
        {
            ID = 345,
            Balance = 541.27
        },
        new Account 
        {
            ID = 123,
            Balance = -127.44
        }
    };
    
    Dim bankAccounts As New List(Of Account) From {
        New Account With {
                              .ID = 345,
                              .Balance = 541.27
                         },
        New Account With {
                              .ID = 123,
                              .Balance = -127.44
                         }
        }
    

Pour exporter des données vers ExcelTo export data to Excel

  1. Dans le même fichier, ajoutez la méthode suivante à la classe ThisAddIn.In the same file, add the following method to the ThisAddIn class. La méthode configure un classeur Excel, vers lequel elle exporte les données.The method sets up an Excel workbook and exports data to it.

    void DisplayInExcel(IEnumerable<Account> accounts,
               Action<Account, Excel.Range> DisplayFunc)
    {
        var excelApp = this.Application;
        // Add a new Excel workbook.
        excelApp.Workbooks.Add();
        excelApp.Visible = true;
        excelApp.Range["A1"].Value = "ID";
        excelApp.Range["B1"].Value = "Balance";
        excelApp.Range["A2"].Select();
    
        foreach (var ac in accounts)
        {
            DisplayFunc(ac, excelApp.ActiveCell);
            excelApp.ActiveCell.Offset[1, 0].Select();
        }
        // Copy the results to the Clipboard.
        excelApp.Range["A1:B3"].Copy();
    }
    
    Sub DisplayInExcel(ByVal accounts As IEnumerable(Of Account),
                   ByVal DisplayAction As Action(Of Account, Excel.Range))
    
        With Me.Application
            ' Add a new Excel workbook.
            .Workbooks.Add()
            .Visible = True
            .Range("A1").Value = "ID"
            .Range("B1").Value = "Balance"
            .Range("A2").Select()
    
            For Each ac In accounts
                DisplayAction(ac, .ActiveCell)
                .ActiveCell.Offset(1, 0).Select()
            Next
    
            ' Copy the results to the Clipboard.
            .Range("A1:B3").Copy()
        End With
    End Sub
    

    Deux nouvelles fonctionnalités C# sont utilisées dans cette méthode.Two new C# features are used in this method. Ces deux fonctionnalités existent déjà en Visual Basic.Both of these features already exist in Visual Basic.

    • La méthode Add possède un paramètre facultatif pour spécifier un modèle particulier.Method Add has an optional parameter for specifying a particular template. Les paramètres optionnels, introduits dans C# 4, vous permettent d'omettre l'argument du paramètre, si vous souhaitez utiliser la valeur par défaut de ce dernier.Optional parameters, new in C# 4, enable you to omit the argument for that parameter if you want to use the parameter's default value. Dans la mesure où aucun argument n'est envoyé dans l'exemple précédent, Add utilise le modèle par défaut et crée un classeur.Because no argument is sent in the previous example, Add uses the default template and creates a new workbook. L'instruction équivalente dans les versions antérieures de C# nécessite un argument d'espace réservé : excelApp.Workbooks.Add(Type.Missing).The equivalent statement in earlier versions of C# requires a placeholder argument: excelApp.Workbooks.Add(Type.Missing).

      Pour plus d’informations, consultez Arguments nommés et facultatifs.For more information, see Named and Optional Arguments.

    • Les propriétés Range et Offset de l’objet Range utilisent la fonctionnalité des propriétés indexées.The Range and Offset properties of the Range object use the indexed properties feature. Cette fonctionnalité vous permet de consommer ces propriétés à partir des types COM à l’aide de la syntaxe C# standard suivante.This feature enables you to consume these properties from COM types by using the following typical C# syntax. Les propriétés indexées vous permettent également d'utiliser la propriété Value de l'objet Range, ce qui rend superflue l'utilisation de la propriété Value2.Indexed properties also enable you to use the Value property of the Range object, eliminating the need to use the Value2 property. La propriété Value est indexée, mais l'index est optionnel.The Value property is indexed, but the index is optional. Les arguments facultatifs et les propriétés indexées fonctionnent ensemble dans l'exemple suivant.Optional arguments and indexed properties work together in the following example.

      // Visual C# 2010 provides indexed properties for COM programming.
      excelApp.Range["A1"].Value = "ID";
      excelApp.ActiveCell.Offset[1, 0].Select();
      

      Dans les versions antérieures du langage, la syntaxe spéciale suivante est requise.In earlier versions of the language, the following special syntax is required.

      // In Visual C# 2008, you cannot access the Range, Offset, and Value
      // properties directly.
      excelApp.get_Range("A1").Value2 = "ID";
      excelApp.ActiveCell.get_Offset(1, 0).Select();
      

      Vous ne pouvez pas créer vos propres propriétés indexées.You cannot create indexed properties of your own. La fonctionnalité prend uniquement en charge la consommation de propriétés indexées existantes.The feature only supports consumption of existing indexed properties.

      Pour plus d’informations, consultez Guide pratique pour utiliser des propriétés indexées dans la programmation COM Interop.For more information, see How to: Use Indexed Properties in COM Interop Programming.

  2. À la fin de DisplayInExcel, ajoutez le code suivant pour ajuster les largeurs de colonne au contenu.Add the following code at the end of DisplayInExcel to adjust the column widths to fit the content.

    excelApp.Columns[1].AutoFit();
    excelApp.Columns[2].AutoFit();
    
    ' Add the following two lines at the end of the With statement.
    .Columns(1).AutoFit()
    .Columns(2).AutoFit()
    

    Ces ajouts illustrent une autre fonctionnalité de C# : le traitement des valeurs Object retournées par les hôtes COM tels qu’Office comme si leur type était dynamic.These additions demonstrate another feature in C#: treating Object values returned from COM hosts such as Office as if they have type dynamic. Cela se produit automatiquement quand la propriété Incorporer les types d’interopérabilité est définie sur sa valeur par défaut, True, ou, de façon équivalente, quand l’assembly est référencé par l’option du compilateur /link.This happens automatically when Embed Interop Types is set to its default value, True, or, equivalently, when the assembly is referenced by the /link compiler option. Le type dynamic permet la liaison tardive, déjà disponible en Visual Basic, et évite le cast explicite requis en Visual C# 2008 et dans les versions antérieures du langage.Type dynamic allows late binding, already available in Visual Basic, and avoids the explicit casting required in Visual C# 2008 and earlier versions of the language.

    Par exemple, excelApp.Columns[1] retourne un Object et AutoFit est une méthode Range Excel.For example, excelApp.Columns[1] returns an Object, and AutoFit is an Excel Range method. Sans dynamic, vous devez effectuer un cast de l'objet retourné par excelApp.Columns[1] sous la forme d'une instance de Range avant d'appeler la méthode AutoFit.Without dynamic, you must cast the object returned by excelApp.Columns[1] as an instance of Range before calling method AutoFit.

    // Casting is required in Visual C# 2008.
    ((Excel.Range)excelApp.Columns[1]).AutoFit();
    
    // Casting is not required in Visual C# 2010.
    excelApp.Columns[1].AutoFit();
    

    Pour plus d'informations sur l'incorporation des types d'interopérabilité, consultez les procédures « Pour rechercher la référence d'assembly PIA » et « Pour restaurer la dépendance d'assembly PIA » plus loin dans cette rubrique.For more information about embedding interop types, see procedures "To find the PIA reference" and "To restore the PIA dependency" later in this topic. Pour plus d’informations sur dynamic, consultez dynamic ou Utilisation du type dynamic.For more information about dynamic, see dynamic or Using Type dynamic.

Pour appeler DisplayInExcelTo invoke DisplayInExcel

  1. Ajoutez le code suivant à la fin de la méthode ThisAddIn_StartUp.Add the following code at the end of the ThisAddIn_StartUp method. L'appel à DisplayInExcel contient deux arguments.The call to DisplayInExcel contains two arguments. Le premier argument est le nom de la liste des comptes à traiter.The first argument is the name of the list of accounts to be processed. Le deuxième argument est une expression lambda multiligne qui définit comment les données doivent être traitées.The second argument is a multiline lambda expression that defines how the data is to be processed. Les valeurs ID et balance de chaque compte s'affichent dans des cellules adjacentes et la ligne s'affiche en rouge si le solde est inférieur à zéro.The ID and balance values for each account are displayed in adjacent cells, and the row is displayed in red if the balance is less than zero. Pour plus d’informations, consultez Expressions lambda.For more information, see Lambda Expressions.

    DisplayInExcel(bankAccounts, (account, cell) =>
    // This multiline lambda expression sets custom processing rules  
    // for the bankAccounts.
    {
        cell.Value = account.ID;
        cell.Offset[0, 1].Value = account.Balance;
        if (account.Balance < 0)
        {
            cell.Interior.Color = 255;
            cell.Offset[0, 1].Interior.Color = 255;
        }
    });
    
    DisplayInExcel(bankAccounts,
           Sub(account, cell)
               ' This multiline lambda expression sets custom
               ' processing rules for the bankAccounts.
               cell.Value = account.ID
               cell.Offset(0, 1).Value = account.Balance
    
               If account.Balance < 0 Then
                   cell.Interior.Color = RGB(255, 0, 0)
                   cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0)
               End If
           End Sub)
    
  2. Pour exécuter le programme, appuyez sur F5.To run the program, press F5. Une feuille de calcul Excel s'affiche avec les données des comptes.An Excel worksheet appears that contains the data from the accounts.

Pour ajouter un document WordTo add a Word document

  1. Ajoutez le code suivant à la fin de la méthode ThisAddIn_StartUp pour créer un document Word qui contient un lien vers le classeur Excel.Add the following code at the end of the ThisAddIn_StartUp method to create a Word document that contains a link to the Excel workbook.

    var wordApp = new Word.Application();
    wordApp.Visible = true;
    wordApp.Documents.Add();
    wordApp.Selection.PasteSpecial(Link: true, DisplayAsIcon: true);
    
    Dim wordApp As New Word.Application
    wordApp.Visible = True
    wordApp.Documents.Add()
    wordApp.Selection.PasteSpecial(Link:=True, DisplayAsIcon:=True)
    

    Ce code illustre plusieurs fonctionnalités nouvelles en C# : la possibilité d'omettre le mot clé ref dans la programmation COM, les arguments nommés et les arguments facultatifs.This code demonstrates several of the new features in C#: the ability to omit the ref keyword in COM programming, named arguments, and optional arguments. Ces fonctionnalités existent déjà en Visual Basic.These features already exist in Visual Basic. La méthode PasteSpecial comporte sept paramètres, tous définis en tant que paramètres de référence facultatifs.The PasteSpecial method has seven parameters, all of which are defined as optional reference parameters. Les arguments nommés et les arguments facultatifs vous permettent de désigner les paramètres auxquels vous souhaitez accéder par leur nom et d’envoyer des arguments à ces seuls paramètres.Named and optional arguments enable you to designate the parameters you want to access by name and to send arguments to only those parameters. Dans cet exemple, les arguments sont envoyés pour indiquer qu’un lien vers le classeur dans le Presse-papiers doit être créé (paramètre Link) et que ce lien doit être affiché dans le document Word sous forme d’une icône (paramètre DisplayAsIcon).In this example, arguments are sent to indicate that a link to the workbook on the Clipboard should be created (parameter Link) and that the link is to be displayed in the Word document as an icon (parameter DisplayAsIcon). Visual C# vous permet également d’omettre le mot clé ref pour ces arguments.Visual C# also enables you to omit the ref keyword for these arguments.

Pour exécuter l’applicationTo run the application

  1. Appuyez sur F5 pour exécuter l'application.Press F5 to run the application. Excel démarre et affiche un tableau qui contient les informations des deux comptes de bankAccounts.Excel starts and displays a table that contains the information from the two accounts in bankAccounts. Puis, un document Word apparaît qui contient un lien vers le tableau Excel.Then a Word document appears that contains a link to the Excel table.

Pour nettoyer le projet terminéTo clean up the completed project

  1. Dans Visual Studio, cliquez sur Nettoyer la solution dans le menu Générer.In Visual Studio, click Clean Solution on the Build menu. Sinon, le complément s'exécutera chaque fois que vous ouvrirez Excel sur votre ordinateur.Otherwise, the add-in will run every time that you open Excel on your computer.

Pour rechercher la référence d'assembly PIATo find the PIA reference

  1. Exécutez de nouveau l’application, mais ne cliquez pas sur Nettoyer la solution.Run the application again, but do not click Clean Solution.

  2. Sélectionnez le bouton Démarrer.Select the Start. Recherchez Microsoft Visual Studio <version> et ouvrez une invite de commandes développeur.Locate Microsoft Visual Studio <version> and open a developer command prompt.

  3. Tapez ildasm dans la fenêtre Invite de commandes de Visual Studio, puis appuyez sur Entrée.Type ildasm in the Visual Studio Command Prompt window, and then press ENTER. La fenêtre IL DASM s'affiche.The IL DASM window appears.

  4. Dans le menu Fichier de la fenêtre IL DASM, sélectionnez Fichier > Ouvrir.On the File menu in the IL DASM window, select File > Open. Double-cliquez sur Visual Studio <version>, puis sur Projets.Double-click Visual Studio <version>, and then double-click Projects. Ouvrez le dossier de votre projet et, dans le dossier bin/Debug, recherchez nom de votre projet.dll.Open the folder for your project, and look in the bin/Debug folder for your project name.dll. Double-cliquez sur nom de votre projet.dll.Double-click your project name.dll. Une nouvelle fenêtre affiche les attributs de votre projet, en plus des références à d'autres modules et assemblys.A new window displays your project's attributes, in addition to references to other modules and assemblies. Remarquez que les espaces de noms Microsoft.Office.Interop.Excel et Microsoft.Office.Interop.Word sont inclus dans l'assembly.Note that namespaces Microsoft.Office.Interop.Excel and Microsoft.Office.Interop.Word are included in the assembly. Par défaut, dans Visual Studio, le compilateur importe les types dont vous avez besoin à partir d’un assembly PIA référencé dans votre assembly.By default in Visual Studio, the compiler imports the types you need from a referenced PIA into your assembly.

    Pour plus d’informations, consultez Guide pratique pour afficher le contenu d’un assembly.For more information, see How to: View Assembly Contents.

  5. Double-cliquez sur l’icône MANIFESTE.Double-click the MANIFEST icon. Une fenêtre affiche la liste des assemblys contenant les éléments référencés par le projet.A window appears that contains a list of assemblies that contain items referenced by the project. Microsoft.Office.Interop.Excel et Microsoft.Office.Interop.Word ne sont pas inclus dans la liste.Microsoft.Office.Interop.Excel and Microsoft.Office.Interop.Word are not included in the list. Étant donné que les types dont votre projet a besoin ont été importés dans votre assembly, les références à un assembly PIA ne sont pas requis.Because the types your project needs have been imported into your assembly, references to a PIA are not required. Le déploiement s'en trouve facilité.This makes deployment easier. Les assemblys PIA ne doivent pas être présents sur l'ordinateur de l'utilisateur ; comme une application ne nécessite pas le déploiement d'une version spécifique d'un assembly PIA, les applications peuvent être conçues pour fonctionner avec plusieurs versions d'Office, sous réserve que les API nécessaires existent dans toutes les versions.The PIAs do not have to be present on the user's computer, and because an application does not require deployment of a specific version of a PIA, applications can be designed to work with multiple versions of Office, provided that the necessary APIs exist in all versions.

    Le déploiement d'assemblys PIA n'étant plus nécessaire, vous pouvez créer une application dans les scénarios avancés qui fonctionne avec plusieurs versions d'Office, y compris les versions antérieures.Because deployment of PIAs is no longer necessary, you can create an application in advanced scenarios that works with multiple versions of Office, including earlier versions. Cependant, cela ne fonctionne que si votre code n'utilise pas d'API qui ne sont pas disponibles dans la version d'Office que vous utilisez.However, this works only if your code does not use any APIs that are not available in the version of Office you are working with. Comme il n'est pas toujours évident de savoir si une API particulière était disponible dans une version antérieure, l'utilisation de versions antérieures d'Office n'est pas recommandée.It is not always clear whether a particular API was available in an earlier version, and for that reason working with earlier versions of Office is not recommended.

    Note

    Jusqu'à Office 2003, Office ne publiait pas les assemblys PIA.Office did not publish PIAs before Office 2003. Par conséquent, le seul moyen de générer un assembly d'interopérabilité pour Office 2002 ou versions antérieures consiste à importer la référence COM.Therefore, the only way to generate an interop assembly for Office 2002 or earlier versions is by importing the COM reference.

  6. Fermez la fenêtre de manifeste et la fenêtre d'assembly.Close the manifest window and the assembly window.

Pour restaurer la dépendance d'assembly PIATo restore the PIA dependency

  1. Dans l’Explorateur de solutions, cliquez sur le bouton Afficher tous les fichiers.In Solution Explorer, click the Show All Files button. Développez le dossier Références et sélectionnez Microsoft.Office.Interop.Excel.Expand the References folder and select Microsoft.Office.Interop.Excel. Appuyez sur F4 pour afficher la fenêtre Propriétés.Press F4 to display the Properties window.

  2. Dans la fenêtre Propriétés, remplacez la valeur True de la propriété Incorporer les types d’interopérabilité par False.In the Properties window, change the Embed Interop Types property from True to False.

  3. Répétez les étapes 1 et 2 de cette procédure pour Microsoft.Office.Interop.Word.Repeat steps 1 and 2 in this procedure for Microsoft.Office.Interop.Word.

  4. Dans C#, commentez les deux appels à Autofit à la fin de la méthode DisplayInExcel.In C#, comment out the two calls to Autofit at the end of the DisplayInExcel method.

  5. Appuyez sur F5 pour vérifier que le projet continue de s'exécuter correctement.Press F5 to verify that the project still runs correctly.

  6. Répétez les étapes 1 à 3 de la procédure précédente pour ouvrir la fenêtre d'assembly.Repeat steps 1-3 from the previous procedure to open the assembly window. Notez que Microsoft.Office.Interop.Word et Microsoft.Office.Interop.Excel ne sont plus dans la liste des assemblys incorporés.Notice that Microsoft.Office.Interop.Word and Microsoft.Office.Interop.Excel are no longer in the list of embedded assemblies.

  7. Double-cliquez sur l’icône MANIFESTE et faites défiler la liste des assemblys référencés.Double-click the MANIFEST icon and scroll through the list of referenced assemblies. Microsoft.Office.Interop.Word et Microsoft.Office.Interop.Excel figurent tous deux dans la liste.Both Microsoft.Office.Interop.Word and Microsoft.Office.Interop.Excel are in the list. Comme l’application référence les assemblys PIA Excel et Word, et que la propriété Incorporer les types d’interopérabilité a la valeur False, les deux assemblys doivent exister sur l’ordinateur de l’utilisateur final.Because the application references the Excel and Word PIAs, and the Embed Interop Types property is set to False, both assemblies must exist on the end user's computer.

  8. Dans Visual Studio, cliquez sur Nettoyer la solution dans le menu Générer pour nettoyer le projet achevé.In Visual Studio, click Clean Solution on the Build menu to clean up the completed project.

Voir aussiSee Also

Propriétés implémentées automatiquementAuto-Implemented Properties
Propriétés implémentées automatiquementAuto-Implemented Properties
Initialiseurs de collectionCollection Initializers
Initialiseurs d’objets et de collectionsObject and Collection Initializers
Paramètres facultatifsOptional Parameters
Passage des arguments par position et par nomPassing Arguments by Position and by Name
Arguments nommés et facultatifsNamed and Optional Arguments
Liaison anticipée et liaison tardiveEarly and Late Binding
dynamicdynamic
Utilisation du type dynamicUsing Type dynamic
Expressions lambdaLambda Expressions
Expressions lambdaLambda Expressions
Comment : utiliser des propriétés indexées dans la programmation COM InteropHow to: Use Indexed Properties in COM Interop Programming
Procédure pas à pas : incorporation d’informations de type provenant d’assemblys Microsoft OfficeWalkthrough: Embedding Type Information from Microsoft Office Assemblies
Procédure pas à pas : incorporation de types provenant d’assemblys managésWalkthrough: Embedding Types from Managed Assemblies
Procédure pas à pas : création de votre premier complément VSTO pour ExcelWalkthrough: Creating Your First VSTO Add-in for Excel
COM InteropCOM Interop
InteropérabilitéInteroperability