J'utilise une macro VBA très simple dans un classeur Excel pour faire essentiellement la même chose, que je Je n'ai aucun formulaire et j'ai des informations sur les tests unitaires dans des fichiers texte formatés. Comme VBA est assez similaire à VBScript et que le code ci-dessous utilise des éléments de système de fichiers et de modèle d'objet Excel qui devraient être disponibles pour VBScript, peut-être que cela vous sera utile.
Ceci est un extrait d'un module .bas. Je le dépose dans un classeur vide, puis dépose mes fichiers texte dans le répertoire de ce classeur, puis exécute l'importation. Il devrait être assez facile de les reformater pour quelque chose de plus formel, si un complément qui cible un autre, nouvellement créé, classeur ou un script qui fait toute la construction en dehors d'Excel:
'...
Private fs_ As FileSystemObject
'...
Private Sub import_()
On Error GoTo EH
Set fs_ = New FileSystemObject
Call importTests_(Application.ThisWorkbook, Application.ThisWorkbook.path)
Call importCode_(Application.ThisWorkbook, Application.ThisWorkbook.path)
Exit Sub
EH:
Debug.Print "Error in import_: " & Err.Number
End Sub
'...
'stuff about importing tests ignored...
'...
Private Sub importCode_(wbk As Workbook, folderName As String)
Dim folderObj As Folder
Set folderObj = fs_.GetFolder(folderName)
Dim fileExt As String
Dim fileObj As File
For Each fileObj In folderObj.Files
fileExt = fs_.GetExtensionName(fileObj.name)
If fileExt = "bas" Or fileExt = "cls" Then
Call wbk.VBProject.VBComponents.Import(fileObj.path)
End If
Next fileObj
End Sub
'...
Je ne connaître les problèmes liés à l'importation de formulaires, car je ne les utilise jamais dans Excel.
Je pense que vous devriez spécifier la version Excel cible dans votre question. En ce qui concerne XLA, AFAIK, un XLA est juste un XLS avec une autre extension + une propriété modifiée. –
@NicholasWhite, avez-vous déjà trouvé une solution à ce problème? Moi aussi je le veux. –
@MyseriousDan oui, j'ai fini par écrire un VBScript pour le faire. Je ne l'ai plus à remettre cependant :( –