Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA form nach VB.net importieren ?

VBA form nach VB.net importieren ?
07.09.2020 09:55:51
Marco
Hi,
ich habe eine ziemlich großes Projekt über Jahre in VBA, zuletzt in Office 360 geschrieben.
Über die Zeit sind eigentlich alle Tabellen-Operationen rausgeflogen und ich benutzte nur noch die Excel Forms mit einer selbstgeschriebenen Datenbank.
Der nächste logische Schritt wäre die Migration des kompletten Projekts nach Visual Basic.
Nun habe ich gegoogelt und bekomme unterschiedliche Vorschläge, wie ich z.B. die Userforms aus VBA nach VB bekomme, aber ich bekomme nur den Code importiert aber nicht die zugehörige Userform.
Kann mir jemand einen Tip geben, wie ich eine VBA Form nach VB(.net) importiere.
Ich habe die Form in VBA schon exportiert und 2 Dateien (.frm und .frx) vorliegen.
Der Import in VB ergibt eine Start.frm (was so richtig wäre), aber nur mit Code als Inhalt und einem komischen Header:
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Start
Caption = "Bitte Aktion wählen:"
ClientHeight = 11130
ClientLeft = 45
ClientTop = 330
ClientWidth = 18720
OleObjectBlob = "Start.frx":0000
StartUpPosition = 1 'Fenstermitte
End
Attribute VB_Name = "Start"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub BUT_Info_Click()
Dim i As Integer
.......
Wie bekomme ich die eigentliche Form da rein ?
Das sind immerhin 16 Forms mit insgesamt 300+ statischen und dynamischen Controls etc.drin.
Das nachzubauen wäre sehr aufwendig. Ich hoffe, hier gibt es einen einfacheren Weg.
Vielen Dank vorab für die Hilfe.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA form nach VB.net importieren ?
07.09.2020 23:29:19
mumpel
Bitte kein Crossposting: VBA migrate VB
AW: VBA form nach VB.net importieren ?
08.09.2020 08:25:40
MArco
Warum ist es ein Crossposting, wenn ich auf der einen Seite bei den Excel/VBA Spezialisten frage und auf der anderen Seite bei der Visual Basic community ?
Den Einwand verstehe ich nicht.
Ich hoffe doch nur jemanden zu finden, der erfolgreich eine Migration eines projekts gemacht hat und mir somit helfen kann ?
Anzeige
AW: VBA form nach VB.net importieren ?
08.09.2020 14:42:13
mumpel
Crossposting ist nirgends gern gesehen. Zumindest gehört ein Link auf das andere Forum dazu, damit wir wissen welche Antworten schon gegeben wurden, damit wir nicht "aneinander vorbei arbeiten". 😉
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Form nach VB.NET importieren


Schritt-für-Schritt-Anleitung

  1. Exportiere die UserForms:

    • Öffne dein VBA-Projekt in Excel.
    • Klicke mit der rechten Maustaste auf die UserForm, die du exportieren möchtest, und wähle „Exportieren“.
    • Speichere die Dateien im .frm und .frx Format.
  2. Importiere die Form in VB.NET:

    • Öffne Visual Studio und erstelle ein neues Projekt.
    • Klicke mit der rechten Maustaste auf das Projekt und wähle „Hinzufügen“ > „Vorhandenes Element“.
    • Wähle die .frm Datei aus, um sie hinzuzufügen.
    • Achte darauf, dass du die zugehörige .frx Datei im selben Verzeichnis hast.
  3. Korrigiere den Header:

    • Nach dem Import könnte der Header in der .frm Datei nicht korrekt sein. Überprüfe die Zeile Attribute VB_Name = "FormName" und passe den Namen an, falls nötig.
  4. Füge die Controls hinzu:

    • Du musst möglicherweise einige Controls manuell hinzufügen, da nicht alle Eigenschaften und Events automatisch übernommen werden.
    • Achte darauf, die OLEObjectBlob-Daten zu überprüfen, um sicherzustellen, dass alle Steuerelemente korrekt funktionieren.
  5. Testen der Form:

    • Erstelle eine Instanz der Form in deinem VB.NET Projekt und teste, ob sie wie gewünscht funktioniert.

Häufige Fehler und Lösungen

  • Fehler: Form wird nicht richtig angezeigt.

    • Lösung: Überprüfe die ClientHeight und ClientWidth Werte im Header und passe sie an die gewünschte Größe an.
  • Fehler: Controls fehlen nach dem Import.

    • Lösung: Stelle sicher, dass alle erforderlichen .frx Dateien vorhanden sind und korrekt referenziert werden.
  • Fehler: Komischer Header beim Import.

    • Lösung: Bearbeite die .frm Datei manuell und passe die Attribute an, insbesondere Attribute VB_Name.

Alternative Methoden

  • Du kannst auch Tools oder Drittanbieter-Software nutzen, die speziell für die Migration von VBA zu VB.NET entwickelt wurden. Diese Tools können dir helfen, den Prozess zu automatisieren und die Formulare samt Steuerelementen und deren Eigenschaften zu übertragen.

  • Eine andere Möglichkeit ist, die Formulare neu zu erstellen. Dies könnte zwar zeitaufwendig sein, gibt dir aber die Kontrolle über die Implementierung und die Möglichkeit, das Design zu optimieren.


Praktische Beispiele

Hier ist ein Beispiel für eine einfache UserForm in VBA, die du in VB.NET importieren kannst:

' VBA Code für eine einfache UserForm
Private Sub CommandButton1_Click()
    MsgBox "Hallo, Welt!"
End Sub

Nach dem Import in VB.NET könnte der Code wie folgt aussehen:

' VB.NET Code für die UserForm
Private Sub CommandButton1_Click(sender As Object, e As EventArgs) Handles CommandButton1.Click
    MessageBox.Show("Hallo, Welt!")
End Sub

Tipps für Profis

  • Nutze die vba attribute vb_name, um sicherzustellen, dass die Namen deiner Formulare und Steuerelemente korrekt sind.
  • Halte deine VBA- und VB.NET-Projekte gut dokumentiert, um die Migration zu erleichtern.
  • Teste jede UserForm einzeln, um sicherzustellen, dass alle Funktionen wie erwartet arbeiten.

FAQ: Häufige Fragen

1. Frage: Kann ich UserForms direkt von VBA nach VB.NET importieren?
Antwort: Ja, du kannst die .frm und .frx Dateien exportieren und in dein VB.NET Projekt importieren, allerdings erfordert dies oft manuelle Anpassungen.

2. Frage: Was ist ein OLEObjectBlob und warum brauche ich das?
Antwort: OLEObjectBlob speichert Informationen über OLE-Objekte in deiner Form. Es ist wichtig, damit die Steuerelemente korrekt angezeigt werden.

3. Frage: Welche Excel-Version benötige ich für den Export von UserForms?
Antwort: Du solltest eine aktuelle Version von Excel verwenden, wie z.B. Office 365, um die besten Ergebnisse beim Export von UserForms zu erzielen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige