Découvrez les solutions Excel avec VSTO !
Table des matières
- Introduction
- Solutions Excel avec VSTO
- Modèle d'objet Excel
- Le modèle d'objet Excel
- Les objets principaux du modèle d'objet Excel
- 5.1 L'objet Application Excel
- 5.2 L'objet Workbook
- 5.3 L'objet Worksheet
- 5.4 L'objet Range
- Assemblées gérées et non gérées
- 6.1 Assemblées non gérées
- 6.2 Assemblées gérées
- Exemples de code
- 7.1 Exemples d'utilisation de l'objet Application
- 7.2 Exemples d'utilisation de l'objet Workbook
- 7.3 Exemples d'utilisation de l'objet Worksheet
- 7.4 Exemples d'utilisation de l'objet Range
- Utiliser VSTO dans une solution AddIn Excel
- 8.1 Différences entre les solutions de niveau document et AddIn
- 8.2 Exemples d'utilisation des objets avec une solution AddIn
- Conclusion
📖 Introduction
Bienvenue dans cette vidéo d'Excel Dev Studio ! Dans cette leçon, nous allons explorer les solutions Excel avec VSTO (Visual Studio Tools for Office). VSTO est un outil de développement permettant d'étendre les fonctionnalités d'Excel. Si vous n'avez pas encore vu les vidéos précédentes, je vous encourage à les regarder pour avoir une introduction à VSTO et pour configurer votre environnement de développement.
🖥️ Solutions Excel avec VSTO
Les solutions Excel que nous pouvons construire avec VSTO sont des extensions des fonctionnalités déjà présentes dans Excel. Dans cette vidéo, nous nous concentrerons sur le modèle d'objet Excel, qui est l'ensemble des objets que nous pouvons utiliser pour contrôler Excel. Les principaux objets du modèle d'objet Excel sont l'application, le classeur, la feuille de calcul et la plage. Nous verrons comment utiliser ces objets avec des exemples détaillés.
🧩 Modèle d'objet Excel
Le modèle d'objet Excel est une hiérarchie d'objets qui nous permet de contrôler Excel. L'objet le plus élevé de cette hiérarchie est l'application Excel elle-même. À partir de l'objet Application, nous pouvons accéder aux autres objets qui composent le modèle d'objet, tels que les classeurs, les feuilles de calcul et les plages. Chacun de ces objets a des propriétés, des méthodes et des événements spécifiques que nous pouvons utiliser dans nos solutions Excel.
📚 Les objets principaux du modèle d'objet Excel
5.1 L'objet Application Excel
L'objet Application représente l'application Excel elle-même. Il expose de nombreuses informations sur l'application en cours d'exécution, les actions appliquées à cette instance et l'utilisation actuelle des objets ouverts. Nous pouvons utiliser cet objet pour effectuer des actions telles que la mise à jour de la barre d'état, le contrôle des paramètres d'affichage d'Excel et l'accès aux autres objets du modèle.
5.2 L'objet Workbook
L'objet Workbook représente un classeur unique dans l'application Excel. Il fait partie de la collection des classeurs (Workbooks) et contient toutes les feuilles de calcul du classeur. Nous pouvons utiliser cet objet pour effectuer des opérations telles que l'ouverture, la fermeture et l'enregistrement des classeurs.
5.3 L'objet Worksheet
L'objet Worksheet représente une feuille de calcul dans un classeur. Il fait partie de la collection des feuilles de calcul (Worksheets) et contient toutes les plages et les cellules de la feuille de calcul. Nous pouvons utiliser cet objet pour effectuer des actions telles que la création de nouvelles feuilles de calcul, la modification de l'ordre des feuilles, le renommage des feuilles existantes et la suppression de feuilles de calcul.
5.4 L'objet Range
L'objet Range est l'objet que nous utiliserons le plus souvent dans une application Excel. Avant de pouvoir manipuler une région dans Excel, nous devons d'abord l'exprimer comme un objet Range. Un objet Range peut représenter une cellule, une ligne, une colonne, une sélection de cellules, un bloc de cellules contiguës ou même un groupe de cellules sur plusieurs feuilles. Nous pouvons utiliser cet objet pour lire et écrire des valeurs dans des cellules, parcourir des plages de cellules et appliquer des formats.
🌐 Assemblées gérées et non gérées
6.1 Assemblées non gérées
Lorsque nous travaillons avec le modèle d'objet Excel à partir de .NET, nous devons communiquer avec les interfaces COM non gérées du modèle d'objet. Les modèles d'objet Excel et d'autres applications Office sont écrits en langages non gérés tels que C et C++. Pour communiquer avec ces interfaces COM, nous avons besoin de ce qu'on appelle un wrapper .NET, qui est une bibliothèque interopérable avec les interfaces COM non gérées. Dans le cas d'Excel, le wrapper est appelé "Office Primary Interop Assemblies" (PIA).
6.2 Assemblées gérées
Les assemblées gérées pour VSTO implémentent les propriétés, les méthodes et les événements définis par les PIA. Ces assemblées facilitent l'interaction avec les applications Office en fournissant des objets et des méthodes spécifiques à VSTO. Par exemple, l'assemblée VSTO pour Excel se trouve dans l'espace de noms Microsoft.Office.Tools.Excel. Lorsque nous créons une solution Excel avec VSTO, Visual Studio ajoute automatiquement les références aux assemblées nécessaires.
💡 Exemples de code
Maintenant que nous avons couvert les bases du modèle d'objet Excel et des assemblées gérées et non gérées, nous allons voir quelques exemples de code pour mieux comprendre comment utiliser ces objets dans nos solutions Excel.
7.1 Exemples d'utilisation de l'objet Application
Les exemples suivants montrent comment utiliser l'objet Application pour effectuer des actions telles que la mise à jour de la barre d'état, le recalcul des feuilles et l'utilisation des fonctions intégrées d'Excel.
Exemple 1 : Mise à jour de la barre d'état
Sub UpdateStatusBar(ByVal message As String)
Application.StatusBar = message
End Sub
Sub ClearStatusBar()
Application.StatusBar = ""
End Sub
Exemple 2 : Recalcul d'une feuille de calcul
Sub RecalculateSheet(ByVal sheet As Worksheet)
Dim calculationState As XlCalculationState
calculationState = Application.CalculationState
' Set calculation to manual
Application.Calculation = xlCalculationManual
Application.EnableCalculation = False
Application.EnableCalculation = True
sheet.Calculate
' Set calculation back to its original state
Application.Calculation = calculationState
End Sub
Sub RecalculateAllWorkbooks()
Application.CalculateFullRebuild
End Sub
Exemple 3 : Utilisation des fonctions intégrées
Sub UseBuiltInFunction()
Dim result As Variant
result = Application.WorksheetFunction.Sum(75, 35)
MsgBox result
End Sub
7.2 Exemples d'utilisation de l'objet Workbook
Les exemples suivants montrent comment utiliser l'objet Workbook pour créer, ouvrir, enregistrer et fermer des classeurs Excel, ainsi que pour parcourir les classeurs ouverts.
Exemple 1 : Création d'un nouveau classeur
Sub CreateNewWorkbook()
Dim newWorkbook As Workbook
Set newWorkbook = Workbooks.Add
MsgBox newWorkbook.Name
End Sub
Exemple 2 : Ouverture d'un classeur existant
Sub OpenWorkbook(ByVal fileName As String)
Dim openedWorkbook As Workbook
Set openedWorkbook = Workbooks.Open(fileName)
End Sub
Exemple 3 : Obtention d'une référence à un classeur
Sub GetWorkbook()
Dim activeWorkbook As Workbook
Set activeWorkbook = Application.ActiveWorkbook
Dim namedWorkbook As Workbook
Set namedWorkbook = Workbooks("WorkbookName.xlsx")
Dim indexedWorkbook As Workbook
Set indexedWorkbook = Workbooks(1)
End Sub
Exemple 4 : Enregistrement et fermeture d'un classeur
Sub SaveWorkbook(ByVal workbook As Workbook)
workbook.Save
End Sub
Sub SaveAsWorkbook(ByVal workbook As Workbook, ByVal fileName As String)
workbook.SaveAs fileName
End Sub
Sub CloseWorkbook(ByVal workbook As Workbook)
workbook.Close
End Sub
Exemple 5 : Parcours des classeurs ouverts
Sub LoopThroughWorkbooks()
Dim workbook As Workbook
For Each workbook In Workbooks
MsgBox workbook.Name
Next workbook
End Sub
7.3 Exemples d'utilisation de l'objet Worksheet
Les exemples suivants montrent comment utiliser l'objet Worksheet pour créer, renommer, réorganiser et supprimer des feuilles de calcul, ainsi que pour parcourir les feuilles de calcul d'un classeur.
Exemple 1 : Création d'une nouvelle feuille de calcul
Sub CreateNewWorksheet()
Dim newWorksheet As Worksheet
Set newWorksheet = Worksheets.Add
MsgBox newWorksheet.Name
End Sub
Exemple 2 : Obtention d'une référence à une feuille de calcul
Sub GetWorksheet()
Dim activeWorksheet As Worksheet
Set activeWorksheet = ThisWorkbook.ActiveSheet
Dim namedWorksheet As Worksheet
Set namedWorksheet = Worksheets("SheetName")
Dim indexedWorksheet As Worksheet
Set indexedWorksheet = Worksheets(1)
End Sub
Exemple 3 : Renommage, réorganisation et suppression de feuilles de calcul
Sub RenameWorksheet(ByVal worksheet As Worksheet, ByVal newName As String)
worksheet.Name = newName
End Sub
Sub ReorderWorksheet(ByVal worksheet As Worksheet, ByVal position As Integer)
worksheet.Move Before:=ThisWorkbook.Sheets(position)
End Sub
Sub DeleteWorksheet(ByVal worksheet As Worksheet)
Application.DisplayAlerts = False
worksheet.Delete
Application.DisplayAlerts = True
End Sub
Exemple 4 : Parcours des feuilles de calcul
Sub LoopThroughWorksheets()
Dim worksheet As Worksheet
For Each worksheet In Worksheets
MsgBox worksheet.Name
Next worksheet
End Sub
7.4 Exemples d'utilisation de l'objet Range
Les exemples suivants montrent comment utiliser l'objet Range pour obtenir des références à des plages de cellules, lire et écrire des valeurs dans des cellules, boucler à travers les cellules et appliquer des formats.
Exemple 1 : Obtention d'une référence à la cellule active
Sub GetActiveCell()
Dim activeCell As Range
Set activeCell = Application.ActiveCell
End Sub
Exemple 2 : Obtention d'une référence à une cellule par adresse
Sub GetCellByAddress(ByVal sheet As Worksheet, ByVal address As String)
Dim cell As Range
Set cell = sheet.Range(address)
End Sub
Exemple 3 : Obtention d'une référence à une cellule par notation R1C1
Sub GetCellByR1C1(ByVal sheet As Worksheet, ByVal row As Integer, ByVal column As Integer)
Dim cell As Range
Set cell = sheet.Cells(row, column)
End Sub
Exemple 4 : Lecture et écriture de valeurs dans des cellules
Sub ReadValueFromCell(ByVal cell As Range)
Dim value As Variant
value = cell.Value
End Sub
Sub WriteValueToCell(ByVal cell As Range, ByVal newValue As Variant)
cell.Value = newValue
End Sub
Exemple 5 : Boucle à travers les cellules
Sub LoopThroughCells(ByVal range As Range)
Dim cell As Range
For Each cell In range
MsgBox cell.Address & ": " & cell.Value
Next cell
End Sub
Exemple 6 : Application de formats aux cellules
Sub FormatCell(ByVal cell As Range)
With cell
.Font.Bold = True
.Font.Italic = True
.Font.Name = "Arial Black"
.Borders.LineStyle = xlContinuous
.Borders.Color = RGB(0, 255, 0)
.Interior.Color = RGB(0, 100, 0)
End With
End Sub
💼 Utiliser VSTO dans une solution AddIn Excel
L'utilisation des objets Excel dans une solution AddIn est similaire à celle d'une solution de niveau document, mais avec quelques différences importantes.
8.1 Différences entre les solutions de niveau document et AddIn
La principale différence entre une solution de niveau document et une solution AddIn est l'accès aux objets Excel. Dans une solution de niveau document, nous accédons aux objets Excel à partir du classeur en cours d'utilisation. Dans une solution AddIn, nous avons accès à tous les classeurs ouverts dans l'application Excel.
8.2 Exemples d'utilisation des objets avec une solution AddIn
Les exemples suivants montrent comment utiliser les objets Excel avec une solution AddIn. Nous avons les mêmes exemples que ceux précédemment présentés, mais cette fois-ci pour une solution AddIn.
...
👋 Conclusion
Dans cette leçon, nous avons exploré les solutions Excel avec VSTO. Nous avons appris comment utiliser le modèle d'objet Excel pour contrôler Excel à partir de notre code. Nous avons également couvert les différences entre les solutions de niveau document et les solutions AddIn, ainsi que les assemblées gérées et non gérées utilisées dans le développement d'applications Excel avec VSTO. J'espère que vous avez trouvé cette leçon utile et que vous vous sentez plus à l'aise pour développer des solutions Excel avec VSTO.