ich schreibe derzeit in VBA ein kleines Werkzeug, das auf auf einer Excel-Mappe basiert. Soweit alles im Griff.
Beim Programmieren hatte ich mir die Aufgabe gestellt, in eine Tabelle nicht nur Werte, sondern auch Formeln automatisiert einzutragen. Geht ja eigentlich analog zur „.value“-Eigenschaft mit der „.Formula“-Eigenschaft in Verbindung mit einem String.
Nur: Warum muss ich, um in Excel „=AUFRUNDEN(A1;0)“ zu erhalten, der Zelle die Eigenschaft „=ROUNDUP(A1,0)“ zuweisen?
Kann ich irgendwo (wegen der Pflege) die Spracheinstellungen zwischen VBA und Excel-Applikation harmonisieren?
(Im Office-Ordner (zumindest unter 97) gibt es eine Datei namens VBALISTE.XLS, in der Du VBA-Konstrukte sowie Tabellennamen sowohl inDeutsch als auch dem englischen Äquivalent findest.)
Grüße
Christoph
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
soviel ich weiß, heißt es immer, man soll wenn VBA dann auf
englisch lernen, baut ja alles auf dem auf
Das Problem ist eigentlich tatsächlich weniger das englischlernen, sondern dass man um deutsche Formeln zu erhalten englische Formeltexte inkl unterschiedlichem Syntax verwenden muss. Alleine das bescheuerte (amerikanische) Komma statt des deutschen Semikolons in der Formel hat mich einige Nerven gekostet.
Ich habe irgendwo in der Hilfe ein kurzes statement bezgl. der Makrosprache gefunden und gehofft, man könnte vielleicht im VBA-Projekt die Formelsprache auf deutsch ändern…
Ich habe irgendwo in der Hilfe ein kurzes statement bezgl. der
Makrosprache gefunden und gehofft, man könnte vielleicht im
VBA-Projekt die Formelsprache auf deutsch ändern…
Nein, das geht nicht, und das hat auch einen ganz einfachen Grund: VBA ist nun einmal VBA, und da ist alles Englisch. Pascal, C++ und wie sie alle heißen, gibt´s ja auch nicht auf Deutsch - auf die Idee würde man gar nicht kommen. Gleiches gilt für das Dezimaltrennzeichen, das nun einmal als Komma spezifiziert ist, unabhängig von der Systemeinstellung.
Ja, und VBA ist als applikationsspezifisches Derivat von VisualBasic eine ganz normale Programmiersprache, die mit Excel, Word und dergleichen vom Ursprung her nichts zu tun hat. Das ist der Unterschied z.B. zu WordBasic, das noch eine spezielle Makrosprache von Word6 war.
Dies hilft Dir zwar nicht weiter, klärt aber über die Ursache auf.
Allerdings kommt man ja durch die Aufzeichnungs-Funktion schnell zu seinen Englischen Entsprechungen (oder durch eine Liste wie die im anderen Posting angegebene). Ist zwar etwas umständlich, geht aber.
keine Angst, ich habe nicht vor, VBA in deutsch zu Programmieren.
Was ich alleine nicht verstehe, ist, warum Excel über die Formula Eigenschaft zwar jederzeit wunderbar aus dem englischen übersetzt (z.B. von „roundup“ zu „abrunden“ in Excel) aber es eben keine Möglichkeit gibt, den korrekten Formelstring(!) direkt in deutsch zu erzeugen. Das hat IMHO nunmal nur wenig mit VBA zu tun (das schiebt letztendlich den String in die Zelle, wo ihn Excel dann nicht erkennt), sondern IMHO eher etwas mit Excel…
Leben kann ich natürlich damit (schon eher weniger mit der mangelhaften Dokumentation von MS, denn woher soll man als Deutscher nun mal ahnen, dass die Trennung von Werten in Amerika durch Komma statt wie hier durch Semikolon geschieht…)