Hi,
ich versuche, auch in Zusammenarbeit mit externen Programmen, in Excel so viel wie möglich in VBA zu machen.
Direkt im Excelsheet einige Buttons erstellen, entsprechende Macros schreiben, diese Macros mit den Buttons verknüpfen dauert meist nur einige Minuten.
Größere Programme/Projekte werden sowieso in VBA realisiert.
Mit AutoIt werden dann meist nur komplette Steuerungssequenzen für Drittprogramme geschrieben, deren Daten dann aber meist direkt mit Excel weiterver(be)arbeitet.
Bsp.:
Excel-VBA-Macro bereitet Daten vor für Drittprogramm und startet AutoIt-Script.
AutoIt-Script steuert Drittprogramm, dieses schreibt mehrere Dateien. Wenn das AutoIt-Script beendet ist, werden diese Dateien aus Excel per VBA eingelesen und weiterverarbeitet.
Dabei arbeiten AutoIt und Excel "zusammen", aber gesteuert aus VBA. In AutoIt werden keine Exceltabellen direkt beschrieben.
Mittlerweile verwende ich Excel-Sheets nur noch als "Daten-Anzeige", Formeln innerhalb der Sheets sind eher selten und wenn, dann werden diese Formeln von Macros in die Zellen geschrieben.
Gewissermaßen sind die Excel-Sheets nur noch das Frontend für die "Datenbank", in meinem Fall Dateiinhalte, die meist auch von anderen (auch AutoIt-) Programmen genutzt werden.
Mit würde nie in den Sinn kommen per AutoIt eine (idR sowieso offene) Exceltabelle zu bearbeiten, wenn ich diese Tabelle mit einem Mausklick auf einen Button direkt per Excelmacro bearbeiten kann. Wieso auch?
In Excel befinden sich sämtliche Features, um Daten optimal visuell aufzubereiten und darzustellen. Diese Features können idR sowieso nur sehr schwer aus AutoIt angesprochen werden. Mir würde sich die Frage stellen, wie ich aus einer geöffneten Exceltabelle ein AutoItscript starten soll, welches dann diese Tabelle (und ggf. andere Tabellen/Sheets) bearbeitet?
Ich wundere mich oft, wie häufig die vom geschätzten Kollegen Water erstellte Excel-UDF "misbraucht" wird, weil der "Programmierer" einfachste Excel-Macros nicht gebacken bekommt. Wobei der Excel-Macrorecorder bestimmt nicht ultimativ ist, so liefert er zumindest ein gutes "Grundgerüst" ab, welches man einfachst erweitern kann.
