3 votes

VSTO Ajout programmé d'une nouvelle feuille de calcul basée sur une feuille existante

J'ai actuellement un Complément Office 2007 en C# qui a un Feuille de travail ajoutés au moment de la conception, où j'ai ajouté des méthodes et des propriétés à l'interface utilisateur. Feuille de travail classe dérivée.

Je veux pouvoir créer par programme une nouvelle feuille de travail qui clones , hérite de ou possède de toute autre manière les méthodes et les gestionnaires d'événements de cette classe de feuille de travail existante automatiquement.

Si cela est possible, quelqu'un pourrait-il nous expliquer comment le faire ? Le code de démonstration C# serait préférable, mais tout code .NET serait acceptable.

Merci pour votre temps.

2voto

Nick Haslam Points 1206

Ok, bonne question, et je vais garder un oeil sur ce qui se passe ici.

Il y a quelques mois, j'ai eu un problème similaire, et j'avais besoin de créer du code et des événements sur des feuilles créées dynamiquement. Pour pouvoir le faire, cependant, j'ai fini par créer des objets VBA script dans la feuille.

Donc le processus était :

  1. L'utilisateur clique sur un bouton dans Excel
  2. Le processus C# crée une nouvelle feuille
  3. Le processus C# crée un objet VBA sur la feuille et crée des événements, etc.

     oBook = objExcel.ActiveWorkbook;
    
    oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
    
    string sCode = "sub myVBASub()\r\n"+
            "msgbox("Hello")\r\n"+
            "End Sub\r\n";
    
    oModule.CodeModule.AddFromString(sCode);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X