Présentation d'extraits de code utilisant Microsoft Visual Studio Tools pour Microsoft Office System, Version 2005

Kevin Schuler Kevin Schultz Sagestone Consulting, Inc. Matt Hessinger Hessinger Consulting, Inc.

Paru le 10 mai 2005

S'applique à :
Microsoft Visual Studio 2005
Microsoft Visual Studio Tools pour Microsoft Office System, Version 2005
Microsoft Office Professionnel 2003
Microsoft Office Excel 2003
Microsoft Office Word 2003

Téléchargez VSTO2005Beta1Snippets.msi  Site en anglais.

Lire l'article en anglais Site en anglais.

Résumé : Les extraits de code IntelliSense destinés à Microsoft Visual Studio Tools pour Microsoft Office System permettent de démarrer rapidement les tâches de développement de Word et d'Excel dans Visual Studio, Version 2005 Bêta 1, notamment l'importation/exportation de données, la collaboration et l'intégration aux contrôles Excel et Word. Cet article contient des liens vers des pages en anglais. (10 pages imprimées)

Remarque Cet article est une version préliminaire de la documentation et pourra faire l'objet de modifications dans les versions futures. Les outils Microsoft Visual Studio Tools pour Microsoft Office System, version 2005 Bêta 1, sont inclus dans Microsoft Visual Studio, version 2005 Bêta 1. La version 2005 de Microsoft Visual Studio Tools pour Microsoft Office System n'est actuellement pas disponible en français. Une version française sera disponible ultérieurement.

Sur cette page

Introduction Introduction
Installation des extraits de code Installation des extraits de code
Catégories d'extraits de code pour les outils Microsoft Visual Studio Tools pour Microsoft Office System Catégories d'extraits de code pour les outils Microsoft Visual Studio Tools pour Microsoft Office System
Exemple de scénario utilisant des extraits de code Excel Exemple de scénario utilisant des extraits de code Excel
Exemple de scénario utilisant des extraits de code Word Exemple de scénario utilisant des extraits de code Word
Conclusion Conclusion
Ressources supplémentaires Ressources supplémentaires

Introduction

Les extraits de code Microsoft IntelliSense permettent aux développeurs de créer et de distribuer facilement leurs propres bibliothèques de code personnalisées. Grâce à l'utilisation de l'environnement de développement intégré (IDE) de Visual Studio et à la puissance d'IntelliSense, l'insertion de ces parties de code couramment utilisées constitue un moyen efficace d'améliorer votre productivité. Vous gagnez du temps car il n'est plus nécessaire d'effectuer des recherches dans d'innombrables exemples de code source uniquement pour trouver un extrait semblable à copier/coller dans le code de votre solution. Il suffit d'utiliser IntelliSense pour insérer un extrait de code, comme le montre la figure 1, puis d'en modifier les paramètres personnalisés sélectionnés en utilisant des info-bulles le cas échéant, comme le montre la figure 2.

Figure 1. Insertion de l'extrait de code (cliquez sur l'image pour l'agrandir)

Figure 1. Insertion de l'extrait de code

Figure 2. Modification des paramètres personnalisés (cliquez sur l'image pour l'agrandir)

Figure 2. Modification des paramètres personnalisés

Les extraits de code IntelliSense constituent une ressource précieuse pour le développeur de code géré qui écrit des applications pour Microsoft Office. Office offre des trésors de fonctionnalités au développeur d'applications. Toute fonction ou presque exécutée par un utilisateur peut être automatisée dans le code. Mais une telle puissance impose une courbe d'apprentissage non négligeable qui nécessite une connaissance détaillée de types, d'opérations et de concepts spéciaux. Les outils Microsoft Visual Studio Tools pour Microsoft Office System (outils Visual Studio pour Office) intègrent les riches fonctionnalités de Microsoft Office Word et de Microsoft Office Excel dans l'IDE de Visual Studio. À présent, un grand nombre des outils Visual Studio qui rendent si simple la création de formulaires Microsoft Windows et d'applications WebForm sont disponibles avec les outils Visual Studio pour les applications Office Word et Excel. Grâce aux outils Microsoft Visual Studio Tools pour Microsoft Office System, votre processus de développement d'Office est simplifié. Par exemple, vous pouvez ouvrir Word ou Excel pour modifier, glisser et déplacer des contrôles (des contrôles Windows standard ou des contrôles d'affichage des outils Visual Studio pour Office), et pour créer des événements, tout cela au sein de l'IDE. Ce niveau d'intégration avec l'IDE permet au développeur d'Office d'utiliser des fonctions puissantes de Visual Studio, en particulier des extraits de code IntelliSense.

Cet article présente des extraits de code Excel et Word créés pour les outils Visual Studio pour Office qui sont inclus dans le package de téléchargement VSTO2005Beta1Snippets.msi. Ces extraits incluent des parties de code couramment utilisées et d'autres qui révèlent certaines fonctions moins connues, bien qu'extrêmement utiles. Tous ces extraits de code appartiennent au type Corps de méthode, ce qui signifie qu'ils sont structurés pour être insérés dans une méthode existante. En outre, un exemple de scénario pour Excel et Word est décrit ci-dessous, pour en illustrer l'utilisation.

Configuration logicielle requise

Pour utiliser ces extraits de code, vous devez installer les logiciels suivants, dans l'ordre indiqué :

  1. Microsoft Windows 2000 ou une version ultérieure

  2. Microsoft Office Professionnel 2003, installation complète ou Microsoft Office Excel 2003 et Microsoft Office Word 2003

  3. Microsoft Visual Studio, Version 2005 Bêta 1

Remarque Quelques-uns des extraits de codes inclus sont destinés à Microsoft Office SharePoint Portal Server 2003, Microsoft Windows XP Tablet PC Edition, Microsoft Office Outlook, Microsoft Office Visio, Microsoft Office PowerPoint ou Microsoft SQL Server Analysis Services, et de ce fait, nécessitent également ces composants.

Installation des extraits de code

Pour installer les extraits de code, exécutez les étapes suivantes :

  1. Téléchargez et exécutez le programme d'installation associé à cet article, VSTO2005Beta1Snippets.msi. Par défaut, ce programme d'installation placera les extraits de code pour C# et Microsoft Visual Basic .NET dans \Program Files\Microsoft Visual Studio Tools for Office.

  2. Vérifiez qu'une seule instance de Visual Studio est en cours d'exécution et que toutes les solutions sont fermées.

  3. Dans le menu Outils, cliquez sur Code Snippets Manager.

  4. Sélectionnez VB dans la zone de liste Langage. Ceci affiche tous les extraits de code disponibles pour Visual Basic.

  5. Cliquez sur Ajouter.

  6. Accédez au dossier \Program Files\Microsoft Visual Studio Tools for Office (ou à celui que vous avez indiqué lors de l'exécution du programme d'installation), sélectionnez Office Development Snippets et cliquez sur Ouvrir.

  7. Cliquez sur Visual C# dans la zone de liste Langage et répétez l'étape Ajouter ci-dessus.

Remarque Vous sélectionnez le même dossier pour C# car les extraits de code Visual Basic .NET et C# des outils Visual Studio pour Office se trouvent dans la même structure de répertoires. Visual Studio fait la distinction entre les langages d'après l'extension du fichier.

À présent, vous pouvez voir les extraits de code dans le gestionnaire d'extraits de code, comme le montre la figure 3.

Figure 3. Gestionnaire d'extraits de code (cliquez sur l'image pour l'agrandir)

Figure 3. Gestionnaire d'extraits de code

Catégories d'extraits de code pour les outils Microsoft Visual Studio Tools pour Microsoft Office System

Vous trouverez les extraits de code de Microsoft Visual Studio Tools pour Microsoft Office System en cliquant avec le bouton droit dans l'éditeur de code et en sélectionnant Insert Snippet dans Visual Basic, ou en sélectionnant IntelliSense, puis en sélectionnant Insert Expansion dans C#. Les extraits de code des outils Visual Studio pour Office se trouvent sous le groupe Office Development Snippets, qui contient trois groupes principaux Excel, Office et Word.

Le menu d'extraits de code Excel contient les sous-groupes suivants :

  • Analytics : Extraits de code destinés à l'interaction avec le traitement analytique en ligne (OLAP) dans Analysis Services et les tableaux croisés dynamiques

  • Collaboration : Extraits de code destinés à l'intégration de la fonctionnalité de collaboration d'Office, incluant l'interaction avec les produits et technologies SharePoint

  • Controls : Extraits de code destinés aux nouveaux contrôles d'affichage des outils Visual Studio pour Office

  • Importing : Extraits de code destinés à l'importation de contenu provenant de nombreux types de sources

  • Exporting : Extraits de code destinés à l'exportation de contenu vers du texte, des DataSets et du XML

Organisé de façon similaire, le menu d'extraits de code Word contient les sous-groupes suivants :

  • Collaboration : Extraits de code destinés à l'intégration de la fonctionnalité de collaboration d'Office, incluant l'interaction avec les produits et technologies SharePoint

  • Controls : Extraits de code destinés aux nouveaux contrôles d'affichage des outils Visual Studio pour Office

  • Environment : Extraits de code destinés à l'interaction avec Word, incluant des propriétés de document et des éléments de menu dynamique

  • Formatting : Extraits de code apportant des fonctions puissantes de formatage, incluant l'interaction avec des tables et des styles

  • Importing : Extraits de code destinés à l'importation de contenu provenant de nombreux types de sources

  • Exporting : Extraits de code destinés à l'exportation de contenu vers du texte, des DataSets et du XML

Le menu d'extraits de code Office contient les sous-groupes suivants :

  • Collaboration : Extraits de code destinés à l'intégration de la fonctionnalité de collaboration d'Office, incluant l'interaction avec les produits et technologies SharePoint

  • Environment : Extraits de code destinés à l'interaction avec l'environnement Office générique, tel que le volet des actions ou la saisie manuscrite

  • Server : Extraits de code destinés à l'interaction avec la nouvelle fonctionnalité de document serveur des outils Visual Studio pour Office

Exemple de scénario utilisant des extraits de code Excel

Cet exemple de scénario décrit ligne par ligne deux extraits de code qui se combinent pour créer un nouveau contrôle ListObject dans une cellule sélectionnée par l'utilisateur, puis relier un DataConnector à la liste.

Remarque Il existe des jeux d'extraits de code identiques pour Visual Basic .NET et C#. L'exemple n'est illustré que dans Visual Basic par mesure de simplicité.

Pour insérer un extrait de code dans Visual Basic, cliquez avec le bouton droit dans l'éditeur de code et sélectionnez Insert Snippet. Pour insérer un extrait de code dans C#,, cliquez avec le bouton droit dans l'éditeur de code, sélectionnez IntelliSense, puis Insert Expansion.

L'exemple suppose que l'application Excel des outils Visual Studio pour Office existe. Il est possible d'ajouter le code à n'importe quelle méthode, comme une fonction de classe ou un gestionnaire d'événements. Cet exemple suppose qu'il existe déjà un DataConnector nommé « connector ».

Pour les besoins de cet exemple, créez un DataConnector pour utiliser la table Customers de la base de données Northwind. Ensuite, cliquez avec le bouton droit sur votre projet, sélectionnez Ajouter un élément et insérez un DataSet nommé CustomersDataSet. Faites ensuite glisser la table Customers de l'Explorateur de serveurs dans l'écran de conception de DataSet. Enfin, faites glisser un bouton sur Feuil1 et double-cliquez dessus pour créer le gestionnaire d'événements. Ceci crée un emplacement pour insérer les extraits de code décrits dans cette section. Votre code sur Feuil1 pourrait prendre la forme suivante :

Public Class Sheet1
Public ds As CustomersDataSet
Public adapter As CustomersTableAdapter
Public connector As DataConnector

Private Sub Sheet1_Initialize(ByVal sender As Object, ByVal e
As System.EventArgs) Handles Me.Initialize
ds = New CustomersDataSet
adapter = New CustomersTableAdapter
connector = New DataConnector

adapter.Fill(ds)
connector.DataSource = ds
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click

End Sub
End Class

Création de ListObject

Pour insérer un contrôle ListObject, placez votre curseur dans la fonction où vous souhaitez insérer le code, par exemple, dans la procédure d'événement Button1_Click. Sous Office Development Snippets, pointez sur Excel, puis sur Controls et sélectionnez l'extrait de code Create ListObject control by range.

Figure 4. Insertion de l'extrait de code Create ListObject control by range (cliquez sur l'image pour l'agrandir)

Figure 4. Insertion de l'extrait de code Create ListObject control by range

L'extrait code suivant est inséré :

'Creates a new ListObject control at the selected range.
Dim range As Microsoft.Office.Interop.Excel.Range = _
DirectCast(Me.Application.Selection, _
Microsoft.Office.Interop.Excel.Range)
Dim lstobj As Microsoft.Office.Tools.Excel.Controls.ListObject _
= sheet1.Controls.AddListObject(range, "ListObject1")

Lorsque vous insérez des extraits de code, l'IDE de Visual Studio met en surbrillance les éléments que vous devez remplacer. Deux valeurs, dans l'extrait de code ci-dessus, sont surlignées en jaune, pour indiquer que vous devez les modifier. Lorsque vous placez le curseur de la souris sur chaque région en jaune, une info-bulle s'affiche qui en décrit la valeur. Par exemple, la valeur « ListObject1 » affiche l'info-bulle « Replace with the name of the ListObject ». Remplacez la valeur feuil1 par le nom de la feuille de calcul.

Remarque Dans Visual Basic, les valeurs par défaut de feuil1 et de « ListObject1 » s'affichent de façon incorrecte, respectivement comme sourceSheet et sourceName. Lorsque la valeur en surbrillance a été modifiée, l'info-bulle s'affiche. Cette anomalie n'a pas d'incidence sur le code C#, qui affiche correctement les valeurs par défaut et celles de l'info-bulle dans Visual Studio 2005 Bêta 1.

Voici comment le code doit apparaître une fois ces valeurs remplacées :

Lorsque ce code est exécuté, il crée un nouveau ListObject nommé "CustomerList".

Liaison du ListObject au DataConnector

Pour lier le contrôle ListObject créé ci-dessus à un DataConnector, sous Office Development Snippets, pointez sur Excel, puis sur Importing et sélectionnez l'extrait de code Bind ListObject contents to DataConnector.

Figure 5. Insertion de l'extrait de code Bind ListObject contents to DataConnector (cliquez sur l'image pour l'agrandir)

Figure 5. Insertion de l'extrait de code Bind ListObject contents to DataConnector

L'extrait code suivant est inséré :

'Uses a specified table in a DataConnector.
'Table values are bound for population of an existing ListObject.
With ListObject1
.AutoSelectRows = True
.SetDataBinding(DataConnector1, "TableName")
End With

À nouveau, les valeurs de remplacement sont surlignées en jaune et leurs éléments sont décrits par des info-bulles. Dans le cas de cet extrait de code, il s'agit des valeurs ListObject1, DataConnector1 et "TableName". Le remplacement de ListObject1 par l'objet créé dans le premier extrait de code, ainsi que par le DataConnector et la table Customers, se traduit par le code suivant :

'Uses a specified table in a DataConnector.
'Table values are bound for population of an existing ListObject.
With lstobj
.AutoSelectRows = True
.SetDataBinding(connector, "Customers")
End With

Maintenant que les extraits de code contiennent les valeurs spécifiques requises par la solution, exécutez le code pour vérifier l'implémentation. Dans ce cas, nous créons un nouveau contrôle ListObject dans une cellule sélectionnée par l'utilisateur et nous la remplissons avec les valeurs de la table Customers à partir d'un DataConnector déjà chargé.

Exemple de scénario utilisant des extraits de code Word

Nous allons à présent utiliser les extraits de code disponibles pour montrer comment vous pouvez implémenter un scénario dans Word. Ce scénario crée un nouvel objet Bookmark (signet) et importe du texte à l'emplacement du signet.

Remarque Il existe des jeux d'extraits de code identiques pour Visual Basic .NET et C#. L'exemple est illustré dans Visual Basic par mesure de simplicité.

Pour insérer un extrait de code, cliquez avec le bouton droit dans l'éditeur de code, sélectionnez Insert Snippet dans Visual Basic, ou sélectionnez IntelliSense, puis Insert Expansion dans C#.

Les exemples qui suivent supposent qu'un projet Word Visual Basic des outils Visual Studio pour Office soit ouvert et que vous disposiez d'un gestionnaire d'événements auquel vous puissiez ajouter du code. Ils supposent également que vous disposiez d'un fichier texte, C:\in.txt, à importer dans le document Word.

Dans le gestionnaire d'événements, ajoutez la ligne de code suivante. Ceci introduit une référence de plage (Range) à la fin du document, là où nous allons insérer la nouvelle table.

Dim rng As Word.Range = Me.Bookmarks("\EndOfDoc").Range

Création de l'objet Bookmark

Nous allons commencer par créer un nouveau signet dans le document. Nous pourrions utiliser un signet Word normal, mais dans le cas présent, nous allons créer un nouveau signet géré. Sous Office Development Snippets, pointez sur Word, puis sur Controls et sélectionnez l'extrait de code Add Bookmark control to document at range.

Figure 6. Insertion de l'extrait de code Add Bookmark control to document at range (cliquez sur l'image pour l'agrandir)

Figure 6. Insertion de l'extrait de code Add Bookmark control to document at range

L'extrait code suivant est inséré :

Dim name As String = "bookmarkName"
sourceVSTODocument.Controls.AddBookmark(sourceRange, name)

N'oubliez pas que lorsque vous insérez des extraits de code, l'IDE de Visual Studio met en surbrillance les éléments que vous devez remplacer. Dans le cas présent, le code insère "bookmarkName" comme nom par défaut du signet. Remplacez ce texte par une chaîne de caractères correspondant au nom voulu. Remplacez "sourceVSTODocument" par le nom de l'objet correspondant au document Visual Studio Tools for Office actif. Remplacez "sourceRange" par le nom de l'objet Range pour lequel vous allez créer le signet. Le code doit se présenter ainsi :

Dim name As String = "SampleBookmark"
Me.Controls.AddBookmark(rng, name)

Ce code insère un nouveau Bookmark, nommé "SampleBookmark", qui renvoie à la plage (Range) référencée, à la fin du document.

Importation de texte

Vous êtes maintenant prêt à importer notre fichier texte. Sous Office Development Snippets, pointez sur Word, puis sur Importing et sélectionnez l'extrait de code Import a text file, insert at a bookmark, and apply specific formatting and breaks.

Figure 7. Insertion de l'extrait de code Import a text file, insert at a bookmark, and apply specific formatting and breaks (cliquez sur l'image pour l'agrandir)

Figure 7. Insertion de l'extrait de code Import a text file, insert at a bookmark, and apply specific formatting and breaks

L'extrait code suivant est inséré :

'Open text file
Dim fileReader As StreamReader = New StreamReader("filePath")
'Get reference to bookmark
Dim rng1 As Microsoft.Office.Interop.Word.Range = _
sourceDocument.Bookmarks("SourceBookMark".Range
'Insert text from file
rng1.InsertAfter(fileReader.ReadToEnd)
fileReader.Close()
'Apply formatting...Change enumeration value to the
'target style that you want to use.
'You can also use a text name (EX: "Heading 1") if
'you have created custom style that you want to use
rng1.Style = Microsoft.Office.Interop.Word.WdBuiltinStyle.wdStyleNormal

Dans ce bloc de code, nous avons trois objets à remplacer :

  • filePath : Chemin d'accès complet au fichier texte que nous voulons importer

  • sourceDocument : Référence au document contenant le signet

  • sourceBookmark : Nom du signet dans lequel vous voulez insérer le texte

Après avoir remplacé ces espaces réservés par des références et des valeurs réelles, notre code doit se présenter ainsi :

'Open text file
Dim fileReader As StreamReader = New StreamReader("c:\in.txt")
'Get reference to bookmark
Dim rng1 As Microsoft.Office.Interop.Word.Range = _
Me.Bookmarks("SampleBookmark").Range
'Insert text from file
rng1.InsertAfter(fileReader.ReadToEnd)
fileReader.Close()
'Apply formatting...Change enumeration value to the
'target style that you want to use.
'You can also use a text name (EX: "Heading 1") if
'you have created custom style that you want to use
rng1.Style = Microsoft.Office.Interop.Word.WdBuiltinStyle.wdStyleNormal

Nous disposons à présent d'une référence à une plage (Range) contenant le texte inséré, nous pouvons la modifier. Nous pouvons par exemple en modifier le format, la convertir en table ou insérer un saut de section avant ou après le texte inséré.

Conclusion

Cet article a présenté la fonction d'extrait de code de Visual Studio, ainsi qu'un exemple montrant comment l'utilisation d'extraits de code des outils Visual Studio Tools for Office pour Word et Excel permet de simplifier l'implémentation d'une solution Word et Excel. L'article décrit également les regroupements d'extraits de code des outils Visual Studio pour Office. L'examen de ces extraits de code fournit aux développeurs qui débutent dans l'environnement Visual Studio Tools for Office un moyen simple de découvrir comment implémenter dans du code un grand nombre de tâches élémentaires de Word et Excel et offre aux développeurs chevronnés une méthode pour mettre en œuvre rapidement des extraits de code réutilisables afin de créer des solutions Word et Excel.

Ressources supplémentaires

À propos des auteurs

Kevin Schultz a créé de nombreuses applications bureautiques et client/serveur destinées aux secteurs de la vente au détail et du commerce au cours des dix dernières années. Complétant son expérience en matière de business intelligence (référentiels de données) et de plate-forme embarquée (Pocket PC), les outils Visual Studio pour Office offrent une autre plate-forme permettant à Kevin de faire le lien entre le développement bureautique classique et le développement Web d'une part, et les exigences actuelles de mobilité. Kevin travaille pour Sagestone ConsultingSite en anglais Quitter le site Microsoft

Kevin Schuler est le directeur de la stratégie chez Sagestone Consulting. Apportant un soutien ferme à la communauté de développeurs Microsoft, il participe en outre au Microsoft Regional Director Program depuis 1996 et au Microsoft .NET Partner Advisory Council. Membre de la commission consultative MCSD, il a conseillé Microsoft pour la mise en place de programmes de formation et de certification destinés à la communauté des développeurs. Il est l'auteur d'ouvrages et de livres blancs concernant la sécurité Internet et différents produits Microsoft.

Matt Hessinger est impliqué dans l'architecture et le développement de logiciels depuis plus de dix ans. Il a récemment démarré sa propre entreprise, Hessinger Consulting, afin d'aider les entreprises émergentes à adopter une approche architecturale solide pour le développement sur Microsoft .NET et Office. Ces trois dernières années, il était architecte en chef chez Econium, qui fut l'un des premiers utilisateurs de l'architecture orientée service (SOA), de .NET et des technologies de collaboration. Lui et son épouse Diana, artiste sur vitrail, vivent à Upper Montclair, NJ.