Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
C# Code für VBA verfügbar machen
10.10.2020 20:29:34
Esther
Hallo liebes Forum,
vielleicht könnt ihr mir weiterhelfen. Ich habe einen Code für diverse Funktionen in C#. Jetzt soll dieser aber auf einen System verfügbar gemacht werden, wo alles am besten in VBA (für eine Excel) plaziert ist. Insbesondere da der C# Code ja eher für Fortgeschrittene ist und ich gerne in dem firmeninternen System alles in VBA haben will.
Vermutlich ist das ein gewisser Rückschritt, aber ich bin einfach nicht fit in C# und in VBA fange ich gerade erst an.
Falls ihr da irgendwie Ideen für Konvertierung, Add-Ons usw. habt. Würde mich sehr über Hilfe freuen.
Falls ihr sagt, dass ist doch Quatsch, weil... auch hilfreich für mich. Oder ihr sagt, es gibt Leute, die schreiben dir schnell den Code um von C# in VBA.
Gruß Esther

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schwierige Antwort
11.10.2020 09:58:58
Fennek
Hallo,
gestern habe ich ein Beispiel gefunden, imdem mit VBA zuerst ein Powershell-Code und damit dann ein C#-Code gestartet wurde.
Es ist also möglich, aber ich muss mir noch überlegen ob und wie ich das kommunizieren möchte. Der Code stammt aus einer der bakannten Viren-Familien.
Es würde mich motivieren dir zu antworten, wenn du ein paar für mich offene Frage beantwortest:
- was ist der Vorteil für malware Autoren mit so einer (unnötig?) komplizierten Konstrktion
- wird C# weniger geloggt als Powershell
mfg
(Ich hoffe, dass andere hier im Forum Stellung beziehen, ob hier aus Viren zitiert werden sollte)
Anzeige
AW: schwierige Antwort
11.10.2020 11:16:32
Zwenn
Hallo Fennek,
das Aufrufen von Code, der in anderen Programmiersprachen entwickelt wurde, wird öfter nachgefragt. Ich lese davon zumeist im Zusammenhang mit Python. Das ist also per se erstmal nix böses.
Viele Grüße,
Zwenn
AW: Python ist einfach
11.10.2020 12:56:47
Fennek
Hallo,
mein AV-Programm blockiert zwar "set WSh = CreateObject("WScript.Shell"), aber ein "Shell Python test.py" geht ohne Probleme.
Was mich ärgert: Wenn die AV schon bestimmte Aufrufe blockt, warum nicht den Code des bekanntesten aller Makro-Viren "Emotet".
mfg
(der Aufrauf von C# über Powershell ist ziemlich "obfuscated" und damit nicht einfach zu kommunizieren. Natürlich habe ich das "IEX" uä entfernt)
Anzeige
AW: C# Code für VBA verfügbar machen
11.10.2020 11:13:36
Zwenn
Hallo Esther,
selbst habe ich das noch nie gemacht und kann auch kein C# programmieren. Aber Microsoft erklärt hier, wie man C# Methoden aus VBA heraus aufrufen kann:
https://docs.microsoft.com/de-de/visualstudio/vsto/walkthrough-calling-code-from-vba-in-a-visual-csharp-project?view=vs-2019
Das sieht mir relativ aufwändig aus. Vor allem, wenn Du nicht nur ein paar Methoden hast. Falls Du das testen möchtest, würde ich auch als erstes mittesten, ob sich so ein Projekt hinterher so in der ganzen Firma ausrollen lässt, wie es benötigt wird. Sprich, läuft das dann einfach auf anderen Rechnern oder muss da auch ein gewisser Aufwand betrieben werden?
Mir stellt sich bei Deinem Vorhaben vor allem die Frage, was macht der C# Code denn? In Excel wird VBA ja eigentlich dafür verwendet Abläufe innerhalb von Excel zu automatisieren. Dein C# Code dürfte aber völlig unabhängig von Excel sein.
Pauschal kann man schlecht eine Aussage darüber treffen, ob Dein Gedankengang sinnvoll ist oder nicht denke ich. Dafür müsste man wissen, was der C# Code macht, wie umfangreich er ist und warum Du meinst, die Codebasis in VBA einzubinden sei sinnvoll, sich also immer auch Excel für die Ausführung eines (eigentlich?) Excel-Unabhängigegn Codes, ans Bein zu binden. Weiterhin würde ich im Vorfeld auch versuchen in Erfahrung zu bringen, ob es Auswirkungen bei künftigen Versionswechseln von Excel geben kann.
Während so einer Erörterung tauchen sicher weitere Fragen auf. Am Ende ist es eine Analyse über Aufwand und Nutzen (Vor- und Nachteile).
Viele Grüße,
Zwenn
Anzeige
Hatte erst den ersten Kaffee
11.10.2020 11:23:23
Zwenn
Hallo noch einmal,
ich glaube, MS beschreibt unter der Verlinkung den Weg, wie man VBA aus C# heraus aufruft. Also genau falsch herum. Ohne jetzt tiefer gebohrt zu haben (Fennek weiß vielleicht mehr dazu), ist man hier der Meinung, dass der Aufruf von C# Methoden aus VBA heraus so ohne weiteres nicht möglich ist. Der Thread ist allerdings schon 10 Jahre alt:
https://stackoverflow.com/questions/3634126/can-we-write-a-macro-in-c-sharp-for-excel
Viele Grüße,
Zwenn
Beim zweiten Kaffee gefunden
11.10.2020 11:47:50
Zwenn
Wird hier eher so eine Recherche-Doku ;-)
Habe jetzt nochmal etwas weiter recherchiert. Du kannst mal einen Blick auf dieses Projekt werfen, vielleicht hilft Dir das weiter. Die Entwicklung begann 2011, also nach dem zuletzt verlinkten Thread:
https://www.codeproject.com/Articles/229280/Office-Programming-Helper-Indent-VB-Code
Ich habe damit nix ausprobiert, nehme aber an, dass sich damit nicht nur die Beispiele in VBA ausführen lassen, sondern auch eigener C# Code. Das folgere ich aus diesem Abschnitt:

Points of Interest
How to Write a VBA Addin
Create a new class library project that uses v2 of .NET Framework and ComVisible
The add in needs either PIA or Visual Studio Tools for Office
Add the following references:
System
System.Windows.Forms
Extensibility = Microsoft Add-In Designer
Microsoft.Vbe.Interop
Microsoft.Office.Core
Add a class that Implements IDTExtensibility2
Write your code in C# or VB:
Bei meinen Sichtungen ist mir Interop nun öfter begegnet. Vielleicht ist das sinnvoll für weitere Rechercheansätze deinerseits.
Viele Grüße,
Zwenn
Anzeige

47 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige