Excel 2007 VBAProject - Migration zu Visual Studio VB.Net-Project (VSTO 2007)

V

VScan

Hallo,

seit einiger Zeit versuche ich einen vernüftigen Weg zu finden, um ein Excel 2007 VB6.0 Projekt in ein VisualStudio VB.Net-Projekt zu migrieren, leider war ich auf meiner Suche erfolglos... vielleicht hat noch Jemand einen guten Tip für mich, um diese Aufgabe zu bewerkstelligen, bevor ich zu der manuellen Copy-Paste-Code-Migration übergehe?


Problem:

Bei einer Migration mit dem Project-Wizard, wird der VBA-Code nicht mehr angezeigt.

- Habe ich bei der Migration was falsch gemacht, oder ist das so?


Wenn ich einzelne Tabellen aus dem Excel VB6.0 - Projekt exportiere, wird mir nach dem Import in das VSTO-Projekt, nur der VB-Code angezeigt, die Tabelle ist weg, zusätzlich ist es eine .cls-Datei, was mich auch verwirrt.

- Ist das in der Regel so oder mache ich hier auch was falsch?


Viele Grüße

VScan


Umgebungen:

Zielumgebung: Excel 2007 Professional (diese Version ist zwingend)
Entwicklungsumgebung: Visual Studio 2010 Professional (inkl. VSTO 2007)
Ausgangssituation: Zu migrierendes Objekt ist ein Excel 2007 VB6.0 Projekt (Active-x und Forms gemischt)
Zielcode: VB.Net
 
Zuletzt bearbeitet von einem Moderator:
@Yaslaw: Ja, soll ja VB2010 sein.

@ VScan: Du verwechselst hier Äpfel mit Birnen. VBA ist eine für die jeweilige Office-Anwendung optimierte Sprache, die sich zwar an VB anlehnt, je nach Applikation aber auch viele spezifische Befehle beinhaltet. Eine Konvertierung nach .NET ist hier nicht möglich, was soll VB2010 denn z.B. mit Worksheets() anfangen?

Was du machen kannst, ist in VB2010 ein Excel-Objekt zu erstellen, damit hast du dann Zugriff auch die entsprechende Exceltabelle und kannst über das Objekt auch die spezifischen Befehle verwenden. In diesem Openbook findest du generelle Funktionsweisen, wie man über ein Objekt mit Excel spricht.


Der Doc!
 
Hey,

hallo DrSoong, danke für Deine produktive Antwort!

Jetzt versteh ich auch, warum ich den Code nicht mehr sehe, ich werde mir das Openbook rein ziehen.

Viele Grüße

Edit:
Der Zugriff innerhalb eines VSTO-Projekts auf Funktionen/Routinen eines VB6.0-Excel-Projekts, war eigentlich dann die Alternative, wenn Microsoft die Migration nicht auf die Reihe bekommt, werde ich mir bestimmt keine zusätzliche Arbeit aufbürden...

Im folgenden kann man eine Routine Namens "AddNumbers" aufrufen und 2 Parameter mit übergeben, dafür verwendet man immer die Methode "Run".

Dim answer as integer = Me.Application.Run(“AddNumbers”, 10, 2)


Vielleicht fällt ja nochmal Jemand darüber :), Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:
Zurück