2010-10-19 3 views
1

je un dossier de composants exportés d'un Addin VBA (contrôle de version) (c.-à beaucoup de cls, FRM, FRx, bas et txt fichiers) . Quelqu'un peut-il me donner un script de construction (peut être un script VB, ou quelque chose de plus compliqué) qui prend le nom de ce dossier et produit un XLA (de travail)?Construction d'un XLA de la source Programmatically

Je sais que vous pouvez modifier par programmation les fichiers XLA (e.g. this question) afin qu'il ne soit pas trop difficile d'écrire un script qui crée une XLA vide, puis boucle sur tous les fichiers du dossier pour les ajouter. ?

Merci,

Nick

(edit: Excel 2003 si cela fait une différence)

+0

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. –

+0

@NicholasWhite, avez-vous déjà trouvé une solution à ce problème? Moi aussi je le veux. –

+0

@MyseriousDan oui, j'ai fini par écrire un VBScript pour le faire. Je ne l'ai plus à remettre cependant :( –

Répondre

0

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.

+0

J'essaie de faire un processus de construction autonome (je vais exécuter le script en utilisant le plugin maven-exec d'apache maven) ... –

Questions connexes