Ich habe in meiner alten XL5-Makrohilfe gestöbert (XL5 war die erste
VBA-Version):
-----schnipp-----
Weitere Informationen darüber, wie Microsoft Excel 4.0-Makros in Visual
Basic-Prozeduren umgewandelt werden
Tip Mit Microsoft Excel, Version 5,0, können Sie Makros sowohl in Visual
Basic als auch in der Makrosprache von Microsoft Excel, Version 4.0,
aufzeichnen. Ein Vergleich identischer Vorgänge, die in beiden Sprachen
aufgezeichnet wurden, kann sehr aufschlußreich für das Lernen von Visual
Basic sein.
In vielen Fällen müssen zwischen den Argumenten von Funktionen, die in der
Makrosprache von Microsoft Excel, Version 4.0, vorliegen und den
entsprechenden Visual Basic-Eigenschaften oder -Methoden einige
Übersetzungen vorgenommen werden. Nachstehend sind die Fälle aufgeführt, in
denen üblicherweise Übersetzungen erforderlich sind:
Bezüge Der Datentyp Bezug der Makrosprache von Microsoft Excel, Version
4.0, ist eine direkte Darstellung einer Zelladresse oder eines Zellbereichs
eines Tabellen- oder Makroblatts (z. B. $C$10). Da Makroblätter Bezüge
unterstützen, kann ein Bezug unmittelbar in einen Ausdruck eingegeben
werden, der in der Makrosprache von Microsoft Excel, Version 4.0, formuliert
ist. Visual Basic hat zwar mit dem Objekt Bereich einen äquivalenten
Datentyp, aber die Art und Weise, wie Bereiche erstellt und gehandhabt
werden, unterscheidet sich von Bezügen. Visual Basic-Bereiche können nicht
direkt eingegeben werden, sondern müssen erstellt werden, indem eine Reihe
numerischer, zeilen- und spaltenbezogener Zellindizes verwendet werden oder
indem die Adresse eines Bereichs als Zeichenfolge in A1-Schreibweise
formuliert wird. Zum Beispiel liefert sowohl
Anwendung.Bereich(ZelleListe(1; 1); ZelleListe(10; 10)) als auch
Anwendung.Bereich("A1:J10") den Bereich A1 bis J10.
Konstanten als Argumente Viele Makrofunktionen erwarten Zahlen als
Argumente. Beispielsweise bedeutet ZELLEN.EINFÜGEN(2), daß Zellen nach unten
verschoben werden, wenn neue Zellen eingefügt werden. In Visual Basic erwart
en Methoden und Eigenschaften als Argumente keine Zahlen, sondern
Zeichenfolgekonstanten. Beispielsweise bedeutet in der Visual
Basic-Anweisung Bereich("A1:C5").Einsetzen(xlNachUnten) die Zeichenfolge
"xlNachUnten", daß Zellen nach unten verschoben werden, wenn neue Zellen
eingefügt werden.
Treffen von Auswahlen in Makros Die meisten im Stil von Microsoft Excel,
Version 4.0, formulierten Makros arbeiten implizit mit der Auswahl oder dem
aktiven Blatt. Im Gegensatz dazu arbeiten Visual Basic-Methoden
und -Eigenschaften nur selten mit der Auswahl. Stattdessen müssen Sie
explizit das Objekt angeben, mit dem Sie arbeiten möchten. Dies ermöglicht
es Ihnen, Objekte einzusetzen, die nicht aktiv oder ausgewählt sind. In
einigen Fällen behandelt Visual Basic Objekte auf eine völlig andere Weise
als die Makrosprache von Microsoft Excel, Version 4.0. In diesen Fällen kann
es sein, daß es für einen Ausdruck, der in der Makrosprache von Microsoft
Excel, Version 4.0, vorliegt, keine direkte Übersetzung gibt.
Funktionen und Add-Ins Microsoft Excel 4.0-Makrofunktionen, die zu
Add-Ins gehören, bleiben in Visual Basic identisch. Sie greifen auf diese
Funktionen zu, indem Sie mit dem Befehl Verweise aus dem Menü Extras einen
Verweis auf den jeweiligen Add-In erstellen, wenn ein Visual Basic-Modul
aktiv ist. Sie können dann die Microsoft Excel 4.0-Makrofunktionen in Ihren
Prozeduren verwenden. Das folgende Beispiel zeigt, wie Sie eine der
ANOVA-Funktionen nach dem Wählen des Befehls Verweise verwenden:
Sub Analyziere_Daten
Anova1Dialog(A1:D15; F1; "C")
Ende Sub
Verwenden Sie in Visual Basic-Prozeduren bis auf eine Ausnahme die gleiche
Schreibweise, die Sie in einem Microsoft Excel 4.0-Makro verwenden. Die
Dialogform der Makrofunktion erhalten Sie, indem Sie an das Ende des Namens
der Makrofunktion "Dialog" anstatt eines "?" (Fragezeichens) anhängen. Z.B.
Anova1Dialog anstatt ANOVA1?.
Makrofunktionen, die zu Add-Ins gehören, können Sie auch mit der Visual
Basic-Methode Excel4MakroAusführen einsetzen. Diese Methode erwartet als
Argumente den Namen und die Argumente einer Makrofunktion. Möchten Sie
beispielsweise mit der Makrofunktion ANOVA1 für die Daten, die im Bereich
A1:D15 abgelegt sind, eine Varianzanalyse vornehmen, müssen Sie die folgende
Anweisung in Ihre Prozedur einfügen:
Anwendung.Excel4MakroAusführen("ANOVA1?(A1:D15;F1;""C"")")
Weitere Informationen zum Umstieg auf Visual Basic finden Sie im Microsoft
Excel Visual Basic Benutzerhandbuch in Anhang B, "Übergang von der Microsoft
Excel 4.0-Makrosprache zu Visual Basic".
-----schnapp-----
Danach siehts also mau aus. Die Konzepte sind wohl zu unterschiedlich. Ruf
Deinen indischen Freund an.
Gruß Alexander
Post by WoKoich programmiere und arbeite seit ueber 10 Jahren sehr
viel in der (Excel-intern voellig ausreichenden) Excel 4.0-
Makrosprache.
Da aber ja eines schoenen Tages alles vorbei ist (2.
Hauptsatz der Thermodynamik), stelle ich mir laenger schon
die Frage, ob es nicht irgendwo ein tool gibt,
solche "alten Huendchen" automatisch in "modernes" Visual
Basic zu uebersetzen.
Weiss da jemand etwas?