2008-09-18 14 views
6

Ich habe ein altes Excel 4 Makro, mit dem ich monatliche Rechnungen ausfühle. Es ist ungefähr 3000 Zeilen und hat viele Excel 5 Dialogfeld-Blätter (für Dialogfelder). Ich würde gerne wissen, was der einfachste Weg wäre, es in Visual Basic zu ändern und ob es sich lohnt. Ich würde auch gerne wissen, wie, wenn ich es einmal in VBA konvertiert habe, wie man eine eigenständige Anwendung davon erstellt.Excel 4 Makros in VBA konvertieren

Antwort

2

AFAIK gibt es keine Möglichkeit, es irgendwie zu konvertieren. Sie müssen grundsätzlich in VBA neu schreiben.

Wenn Sie in VBA konvertiert haben, können Sie nicht als eigenständige Anwendung ausgeführt werden. Wie VBA Visual Basic für Anwendung angibt, lebt es in einer Anwendung (Word, Excel, Scala, was auch immer).

Sie müssen eine Standardsprache (keine Makrosprache) lernen, um eigenständige Anwendungen zu erstellen. Aber Sie müssen viel mehr lernen als die Sprache selbst. Sie müssen verschiedene Techniken erlernen, z. B. Datenbankhandhabung anstelle von Excel-Blatthandhabung, Drucken statt Excel-Druck und so weiter. Im Grunde werden Sie eine Menge Funktionen verlieren, die offensichtlich sind, wenn Sie Excel verwenden.

6

Ich habe dies vorher versucht und am Ende müssen Sie es neu schreiben, wie Biri gesagt hat.

Ich habe ziemlich viel von dieser Arbeit gemacht, als unser Unternehmen von Windows NT auf Windows XP aufrüstete. Ich habe oft festgestellt, dass es einfacher ist, sich den alten Code überhaupt nicht anzusehen und von vorne anzufangen. Sie können so viel Zeit damit verbringen, herauszufinden, was das Excel 4 besonders in der "seltsamen" Dialogfeldnotation getan hat. Am Ende, wenn Sie wissen, was die Eingänge und die Ausgänge sind, dann ist es oft effektiver und sauberer umzuschreiben.

Ob VBA oder nicht ist in mancher Hinsicht eine andere Frage, aber VBA ist ziemlich mächtig und erweiterbar, obwohl ich lieber andere Tools wie .NET in vielen Fällen verwenden würde, funktioniert es gut und ist einfach zu implementieren.

In Bezug auf ist es das wert? Wenn Sie sagen könnten, dass Sie Ihr Excel 4-Makro nie wieder ändern müssten, dann vielleicht nicht. Aber im Business gibt es immer etwas, das zB die Steuersätze ändert, vor allem das Ende des Jahres. Angesichts der Tatsache, wie schwierig es ist, jemanden zu finden, der Excel 4 unterstützt und sogar eine Dokumentation darüber findet, würde ich sagen, dass es riskant ist, nicht auf VBA umzusteigen, aber das ist etwas, das ausgeglichen werden muss.

3

(Disclaimer: Ich entwickle die Excel-DNA-Bibliothek)

Anstatt das Makro zu VBA zu bewegen, die ein COM-Automatisierungsobjektmodell verwendet, das aus der Excel-Makrosprache unterscheidet, sondern es zu VB bewegen. NET (oder C#) läuft mit der Excel-DNA Bibliothek.

Mit Excel-DNA können Sie die C-API verwenden, die die Makrosprache sehr genau widerspiegelt. Für jeden Makrobefehl, wie Ihre Dialoge, gibt es eine C-API-Funktion, die dieselben Parameter verwendet. Das Äquivalent von DIALOG.BOX wäre beispielsweise xlfDialogBox - in diesem Thread gibt es eine Diskussion und ein Beispiel: http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5.

Ein großer Vorteil dieses Umzugs besteht darin, dass Sie Teile Ihres Codes schrittweise ändern können, um die COM-Automatisierungsschnittstelle zu verwenden. Mit Excel-DNA können Sie die COM-Schnittstellen und C-API mischen und abgleichen.