Partager via


Problèmes de développement XLL Excel connus (traduction automatique)

Dernière modification : vendredi 13 mars 2009

S’applique à : Excel 2010 | Office 2010 | VBA | Visual Studio

Dans cet article
Désinscription du XLL commandes et fonctions
Troncature de chaîne de Description argument dans l'Assistant fonction
Limitation de portée de nom binaire
xlSet et des classeurs avec des formules matricielles
Références circulaires sont tolérées dans les Tables de données
Conversion d'un élément XLOPER12 entier en un XLOPER
Renvoi XLOPER ou XLOPER12 en modifiant les Arguments en Place

Important

Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Cette rubrique décrit les problèmes Microsoft Excel connus que vous pouvez rencontrer dans le développement XLL.

Désinscription du XLL commandes et fonctions

Lorsqu'un XLL enregistre une fonction ou une commande, Excel crée un nouveau nom pour la ressource et associe une référence à la fonction DLL portant le même nom. Ce nom provient du quatrième argument de la fonction de la xlfRegister. Ce nom est masqué dans les boîtes de dialogue normal pour la gestion des noms de feuille de calcul. Pour désenregistrer une fonction ou une commande, vous devez supprimer le nom en utilisant la fonction xlfSetName (traduction automatique), en passant le nom mais ne pas en passant une définition. Cependant, un bogue cela permet de supprimer le nom de l'Assistant fonction listes.

Troncature de chaîne de Description argument dans l'Assistant fonction

Arguments 11 à partir de la fonction xlfRegister sont des chaînes facultatifs qui correspondent aux arguments de la fonction XLL. L'Assistant fonction affiche ces pour fournir une aide dans la boîte de dialogue construction argument. Parfois, Excel tronque la chaîne qui correspond à l'argument final par un ou deux caractères lors de l'affichage dans la boîte de dialogue. Vous pouvez éviter ce problème en ajoutant un ou deux espaces à la fin de la chaîne finale.

Limitation de portée de nom binaire

Noms binaires et les données peuvent être récupérées uniquement lorsque la feuille de calcul qui était active au moment qu'ils ont été créés à nouveau est active. Dans la mesure où les fonctions de feuille de calcul ne peut pas activer des feuilles de calcul dans un classeur (seules les commandes peuvent le faire), les applications de noms binaires sont très limitées. Par exemple, si vous disposez d'une commande est uniquement appelée à partir d'une feuille de calcul, vous pouvez utiliser un nom binaire pour stocker les données associées aux commandes.

xlSet et des classeurs avec des formules matricielles

Dans Excel 2003 et versions antérieures, la fonction xlSet (traduction automatique) échoue si vous essayez d'attribuer des valeurs à une plage située dans une feuille de calcul qui n'est pas la feuille de calcul active, où la plage équivalente dans la feuille active contient une formule matricielle. Dans ce cas, Excel affiche le message « Vous ne pouvez pas modifier partie d'un tableau. » Ce problème a été corrigé dans Excel 2007.

Références circulaires sont tolérées dans les Tables de données

Excel actuellement ne provoque pas de d'erreur si le calcul basé sur une table de données fait référence à un élément dans la table elle-même. Comme peu probable que ce scénario peut être, soyez prudent lorsque vous créez ou modifiez les formules qui sont utilisées pour calculer les valeurs de table de données.

Conversion d'un élément XLOPER12 entier en un XLOPER

Dans la mesure où le xltypeInt de type entier est un entier signé 32 bits dans le type de données XLOPER12, mais il est uniquement un entier signé 16 bits dans le type de données XLOPER, il est possible que certaines valeurs de XLOPER12 entier ne peut être maîtrisés dans un XLOPER entier. Dans le cas où Excel convertit ce type en interne, il obtient autour de ce problème en convertissant le type à un xltypeNumXLOPER à virgule flottante.

La fonction de XLOper12ToXLOper Framework reflète ce comportement pour être cohérents avec Excel en interne. Lorsque vous appelez cette fonction, vous ne devez pas considérer que le XLOPER retourné sera toujours xltypeInt ; lecture my_xloper.val.w de donne la valeur false si le type de my_xloper est xltypeNum.

Renvoi XLOPER ou XLOPER12 en modifiant les Arguments en Place

Excel autorise l'enregistrement des fonctions qui retournent une XLOPER ou XLOPER12 en modifiant un argument en place. Toutefois, si un argument XLOPER/XLOPER12 désigne la mémoire et le pointeur est ensuite écrasé par la valeur de retour de la fonction DLL, Excel peut une fuite de mémoire. Excel n'affiche pas une erreur, mais il peut finir par se bloquer. En outre, si la DLL alloué la mémoire pour la valeur de retour, Excel peut essayez de libérer cette mémoire, ce qui pourrait provoquer une panne de l'application immédiate. Par conséquent, vous ne devez pas modifier les arguments de XLOPER/XLOPER12 en place. Tous les arguments de XLOPER ou XLOPER12 doivent être traités comme strictement en lecture seule.

Pour plus d'informations, consultez Gestion de la mémoire dans Excel (traduction automatique).

Notes

Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Voir aussi

Référence

XLOper12ToXLOper (traduction automatique)

Concepts

Développement de XLL Excel 2010 (traduction automatique)

Documentation de référence sur les fonctions de l’API du SDK XLL Excel 2010 (traduction automatique)

Gestion de la mémoire dans Excel (traduction automatique)