22 Stimmen

Ressourcen für Python-Programmierer

Ich habe eine Menge Code in Python geschrieben und bin daher mit der Syntax, der Objektstruktur usw. von Python sehr vertraut.

Welches ist der beste Online-Leitfaden oder die beste Ressourcenseite, um mich mit den Grundlagen vertraut zu machen, sowie ein Vergleich oder ein Nachschlagewerk mit gleichwertigen Funktionen/Merkmalen in VBA gegenüber Python.

Ich habe zum Beispiel Schwierigkeiten, eine einfache Liste in Python mit VBA-Code gleichzusetzen. Ich habe auch Probleme mit Datenstrukturen, wie z. B. Wörterbüchern und so weiter.

Welche Ressourcen oder Tutorien sind verfügbar, die mir eine Anleitung zur Portierung von Python-Funktionen auf VBA oder zur Anpassung an die VBA-Syntax von einem starken OOP-Sprachhintergrund aus bieten?

2 Stimmen

Ich bin nur neugierig... warum versuchen Sie, VBA zu lernen?

2 Stimmen

Eine gute Frage, und wenn es ihm so geht wie mir, ist er im Büro ein Tausendsassa und muss irgendeinen Excel-Mist automatisieren.

0 Stimmen

Es gibt viele Gründe, warum jemand eine neue Programmiersprache lernen möchte. Viele von ihnen haben sehr unterschiedliche Fähigkeiten und funktionieren auf verschiedenen Plattformen, so dass es sinnvoll ist, mehr als eine Sprache zu beherrschen.

26voto

tzot Punkte 86792

VBA unterscheidet sich deutlich von Python, daher sollten Sie zumindest die "Microsoft Visual Basic-Hilfe" lesen, die von der Anwendung, die Sie verwenden werden (Excel, Access ), bereitgestellt wird.

Im Allgemeinen gibt es in VBA das Äquivalent zu Python-Modulen; sie heißen "Bibliotheken" und sind nicht so einfach zu erstellen wie Python-Module. Ich erwähne sie, weil Bibliotheken Ihnen übergeordnete Typen zur Verfügung stellen, die Sie verwenden können.

Als Starthilfe gibt es zwei Arten, die ersetzt werden können list y dict .

list

VBA hat den Typ Collection . Es ist standardmäßig verfügbar (es befindet sich in der Bibliothek VBA ). Sie machen also einfach eine
dim alist as New Collection
und von da an können Sie seine Methoden/Eigenschaften verwenden:

  • .Add(item) ( list.append(item) ),
  • .Count ( len(list) ),
  • .Item(i) ( Liste[i] ) und
  • .Remove(i) ( del list[i] ). Sehr primitiv, aber es ist da.

Sie können auch den VBA-Array-Typ verwenden, der wie Python-Arrays Listen von Elementen des gleichen Typs sind, und im Gegensatz zu Python-Arrays müssen Sie Folgendes tun ReDim um ihre Größe zu ändern (d. h. Sie können nicht einfach Elemente anfügen und entfernen)

dict

Um ein wörterbuchähnliches Objekt zu haben, sollten Sie die Scripting-Bibliothek zu Ihrem VBA-Projekt¹ hinzufügen. Danach können Sie
Dim adict As New Dictionary
und dann seine Eigenschaften/Methoden verwenden:

  • .Add(key, item) ( dict[key] = item ),
  • .Exists(key) ( dict.has_key[key] ),
  • .Items() ( dict.values() ),
  • .Keys() ( dict.keys() ),
    und andere, die Sie im Objektbrowser² finden.

¹ Öffnen Sie den VBA-Editor (Alt+F11). Gehen Sie zu ToolsReferences und markieren Sie "Microsoft Scripting Runtime" in der Liste.

² Um den Objekt-Browser anzuzeigen, drücken Sie im VBA-Editor F2 (oder ViewObject Browser).

2voto

Jiaaro Punkte 70598

Dieses Tutorial ist nicht "für Python-Programmierer", aber ich denke, es ist eine ziemlich gute VBA-Ressource:

http://www.vbtutor.net/VBA/vba_tutorial.html

Auf dieser Website wird ein Beispiel aus der Praxis anhand von Listen erläutert:

http://www.ozgrid.com/VBA/count-of-list.htm

2voto

Wahrscheinlich nicht genau das, was Sie suchen, aber dies ist eine gute VBA-Website, wenn Sie über einige Programmierkenntnisse verfügen. Es ist keine Liste von dies = das, sondern eher ein Problem/Lösung

http://www.mvps.org/access/toc.htm

2voto

Sam Corder Punkte 5288

VBA, wie es als Teil von Office 2000, 2003 und VB6 implementiert wurde, ist zugunsten von .Net-Technologien veraltet. Wenn Sie nicht gerade alten Code pflegen, sollten Sie bei Python bleiben oder vielleicht sogar IronPython für .Net verwenden. Wenn Sie sich für IronPython entscheiden, müssen Sie vielleicht hier und da ein paar C#/VB.Net-Hilfsklassen schreiben, wenn Sie mit verschiedenen COM-Objekten arbeiten, wie z. B. in Office, aber ansonsten soll es ziemlich funktional und schön sein. So gut wie alles, was mit Python zu tun hat, ist in IronPython zu finden. Wenn Sie nur ein paar COM-Skripte schreiben wollen, schauen Sie sich an, was ActiveState herausbringt. Ich habe es in der Vergangenheit verwendet, um einige COM-Arbeit zu tun. Insbesondere mit Python als Active Scripting Sprache (klassisches ASP).

2voto

JonnyGold Punkte 863

Ich bin zwar kein Python-Programmierer, aber vielleicht können Sie VSTO mit Iron Python und Visual Studio ausführen. Auf diese Weise müssen Sie zumindest nicht die VBA-Syntax lernen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X