2009-05-11 11 views
0

Selon mon application, je veux écrire un certain code de lignes dans "ThisWorkbook" de fichier Excel en utilisant vb.net, avant que nous devions vérifier le fichier pour l'existence de code.Comment ajouter/Supprimer des lignes de code à un "ThisWorkbook" de fichier Excel en utilisant vb.net?

S'il vous plaît laissez-moi savoir tout code ou des liens pour référence ..

merci ...

+0

Je suis retagging ce VBA au lieu de VB.NET. Vous ne pouvez utiliser VBA que dans une feuille Excel. Vous pouvez utiliser VB.NET si vous utilisez VSTO, mais ce que vous demandez est VBA. – Eric

Répondre

1

C'est possible mais il est également très probable que les paramètres de sécurité des macros de l'utilisateur l'empêcheront de fonctionner initialement.

Pour régler les paramètres de sécurité (tous les exemples pour Excel 2003):

(à partir d'un classeur): Outils> Macro> Sécurité> Éditeurs approuvés

Vous devez maintenant cocher la case qui dit « fiducie l'accès au projet Visual Basic »

pour lire le code:

(depuis l'éditeur VBA): Outils> Références et ajouter "Microsoft Visual Basic pour Applications Extensibilité 5.3"(le fichier réel est VBE6EXT.OLB)

Pour travailler sur ce qui VBProject est que, utilisez la propriété FileName:

For Each vbpItem In Application.VBE.VBProjects 
    If (vbpItem.FileName = "C:\foo.xls") Then 
     Set vbpProject = vbpItem 
    End If 
Next vbpItem 

Une fois que vous avez le projet, vous pouvez vous référer au module par nom:

vbpProject.VBComponents("ThisWorkbook")

et vous peut vérifier combien de lignes il y a comme ceci:

If (vbpProject.VBComponents("ThisWorkbook").CodeModule.CountOfLines <> 147) Then

Avec l'objet CodeModule, vous pouvez lire en arrière des lignes spécifiques (via la propriété Lines) et changer de ligne (avec la méthode ReplaceLine)

0

La seule chose que je peux trouver cela faire est ThisWorkbook.VBProject.VBComponents.Count qui compte le nombre de modules dans votre solution VB, qui est Sheets + ThisWorkbook + rien de plus. Je ne trouve rien qui permette de faire une diff du code.

Etes-vous en train d'essayer de faire un contrôle de sécurité? Si un code aléatoire était inséré dans vos classeurs, un chapeau noir ne supprimerait-il pas ce chèque codé? Pourquoi ne pas simplement utiliser des signatures et le signer numériquement?

Questions connexes