/ / Comment pourrais-je faire référence au type MS Excel intégré avec OLE - excel, vbscript, tests automatisés, qtp, excel-2010

Comment faire référence au type MS Excel intégré avec OLE - excel, vbscript, tests automatisés, qtp, excel-2010

mon application doit effectuer des actions simplesdans Excel, comme l’ajout de graphiques, la liste d’objets, etc. J'utilise une connexion OLE. Le problème est que certaines méthodes Excel utilisent des types intégrés (énumérations) comme arguments. Et je n’ai aucune idée quant à leur référence. Par exemple:

WorkBook.ActiveSheet.ListObjects.Add(xlSrcRange, Range("$D$5:$J$15"), , xlNo).Name = "Table1"

xlSrcRange et xlNo appartiennent à l'énumération intégrée. J'ai essayé de me référer à eux d'une manière suivante

ExcelApp.xlSrcRange
ExcelApp.XlListObjectSourceType.xlSrcRange
ExcelApp.XlListObjectSourceType

ce code provoque une erreur "Object ne" prend pas en charge la propriété ou la méthode ExcelApp.xlSrcRange"

New XlListObjectSourceType.xlSrcRange
new xlSrcRange

ce code provoque également une erreur (variable inconnue XlListObjectSourceType et xlSrcRange)

Je travaille avec QTP et le langage de script est VB-script

Réponses:

1 pour la réponse № 1

Un script .wsf peut accéder aux constantes xl * via une référence Excel.Sheet:

type xlconst.wsf

<?xml version="1.0" standalone="yes" encoding="iso-8859-1" ?>
<package>
<job id="xlconst">
<reference object="Excel.Sheet" reference="true"/>
<script language="VBScript">
<![CDATA[
" ############################################################################
For Each arg In WScript.Arguments.Unnamed
WScript.Echo "Const " & arg & " = " & Eval(arg)
Next
" ############################################################################
]]>
</script>
</job>
</package>

sortie:

cscript xlconst.wsf xlNo xlYes

Const xlNo = 2
Const xlYes = 1

VBScript simple peut "t. Si QTP est limité à VBScript simple, vous devrez ajouter / définir les constantes manuellement. Peut-être que le fichier .wsf facilitera cette tâche.


0 pour la réponse № 2

Que diriez-vous d'utiliser un nom complet?

dim sourceType As Excel.XlListObjectSourceType
sourceType = Excel.XlListObjectSourceType.xlSrcRange

EDIT: (en vbscript)

dim sourceType
sourceType = 1