Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette méthode mappe l'objet XPath spécifié à un objet ListColumn ou à une collection Range. Si l'objet XPath a été mappé précédemment à l'objet ListColumn ou à la collection Range, la méthode SetValue définit les propriétés de l'objet XPath.
Syntaxe
expression. SetValue (Map, XPath, SelectionNamespace, Repeating)
expression Variable qui représente un objet XPath .
Paramètres
| Nom | Requis/Facultatif | Type de données | Description |
|---|---|---|---|
| Map | Obligatoire | XmlMap | Informations de mappage à laquelle la plage mappée sera associée. |
| XPath | Obligatoire | String | Expression XPath valide indiquant à Excel les données XML qui doivent apparaître dans cette plage mappée. La chaîne XPath peut également contenir des filtres valides, auquel cas seul un sous-ensemble des données pointées par XPath apparaîtra dans cette plage mappée. |
| Espace de noms de la sélection | Facultatif | Variant | Spécifie les préfixes d’espace de noms utilisés dans l’argument XPath . Cet argument peut être omis si l'objet XPath ne contient pas de préfixes, ou si l'objet XPath utilise des préfixes Microsoft Excel. |
| Repeating | Facultatif | Variant | Spécifie si l’objet XPath doit être lié à une colonne d’une liste XML ou mappé à une cellule unique. Définissez la valeur True pour lier l’objet XPath à une colonne d’une liste XML. La valeur FAUX force la création d’une cellule non répétitive. Si la plage est supérieure à une seule cellule et que False est spécifié, une erreur d’exécution se produit. |
Remarques
Voir la propriété IsExportable de l’objet XMLMap pour plus d’informations sur la prise en charge de XPath dans Excel. Si l’expression XPath n’est pas valide ou si le XPath spécifié a déjà été mappé, une erreur d’exécution se produit.
Si Excel ne peut pas résoudre l’espace de noms, une erreur d’exécution se produit.
Cette méthode produit une erreur si l’une des conditions suivantes est remplie :
La plage s'étend sur plusieurs colonnes de la grille.
Une partie de la plage couvre des cellules déjà mappées et le reste de la plage des cellules non mappées.
Une partie de la plage couvre un mappage et une autre partie couvre un autre mappage ou un autre objet XPath du même mappage.
Si la plage est une cellule unique, Excel crée par défaut une cellule mappée unique et non répétée. Aucun en-tête n'est attribué à cette cellule.
L’exception à l’instruction précédente se produit lorsque la plage de cellules uniques se trouve dans un ListObject, auquel cas les informations de mappage sont appliquées à la colonne entière.
Si la plage s’étend sur plusieurs cellules, Excel crée une liste XML répétitive. Excel traite la plage sélectionnée comme toutes les valeurs de données, de sorte que, lorsque la liste XML est créée, la plage est décalée d’une ligne vers le bas et l’en-tête est placé dans la cellule occupée en haut de la plage. La ligne d'insertion se trouve sous la plage qui a été déplacée.
Remarque
- L’algorithme de détection d’en-tête d’Excel n’est pas utilisé dans le modèle objet. L’hypothèse est qu’aucun en-tête n’existe dans la grille.
- Les fonctionnalités de fusion et de croissance automatiques sont désactivées lors de la création des plages mappées dans le modèle d'objet.
Exemple
L’exemple suivant crée une liste XML basée sur la carte de schéma des contacts attachée au classeur, puis utilise la méthode SetValue pour lier chaque colonne à un objet XPath .
Sub CreateXMLList()
Dim mapContact As XmlMap
Dim strXPath As String
Dim lstContacts As ListObject
Dim objNewCol As ListColumn
' Specify the schema map to use.
Set mapContact = ActiveWorkbook.XmlMaps("Contacts")
' Create a new list.
Set lstContacts = ActiveSheet.ListObjects.Add
' Specify the first element to map.
strXPath = "/Root/Person/FirstName"
' Map the element.
lstContacts.ListColumns(1).XPath.SetValue mapContact, strXPath
' Specify the second element to map.
strXPath = "/Root/Person/LastName"
' Add a column to the list.
Set objNewCol = lstContacts.ListColumns.Add
' Map the element.
objNewCol.XPath.SetValue mapContact, strXPath
strXPath = "/Root/Person/Address/Zip"
Set objNewCol = lstContacts.ListColumns.Add
objNewCol.XPath.SetValue mapContact, strXPath
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.