Hallo Vatar,
viele, viele Fragen und alle auf einmal. Na gut, fangen wir mal vorne an:
Das, was du möchtest, ist natürlich recht leicht möglich. Allerdings bin ich mir nicht sicher, wie du bisher gearbeitet hast.
Der Makrorekorder ist sicher nicht "das Gelbe vom Ei" und kann viele Aktionen nicht auflösen. Hier ist also Handarbeit nötig.
Offensichtlich kennst du dich doch mit Programmierung aus. Dann sollte es auch kein Problem sein. Poste doch mal deinen Skriptcode, dann finden wir schon die Problemfelder.
2.) OpenOffice IDE bietet keine automatische Auswahl an. Ist ja acuh keine vollwärtige Programmier-IDE, sondern eine einfache Umgebung für OOo Basic-Skripts, und dafür ist sie sehr gut geeignet.
Das Makro "Inspekt" im Modul "Developer" lässt dich aber recht einfach mal durch die verschiedenen Objekte surfen. Ansonsten nutze einfach die Methoden objekt.dbg_methodes oder object.dbg_properties um zu erforschen, was deine Objekte so können (ein msgbox davor, dann siehst du es auf dem Bildschirm)
3.) Musst du ja nicht. Du kannst auch mit Java oder C oder was auch immer auf OOo zugreifen und alle Funktionen durchführen, die du auch mit Basic erreichtst. Beschaff dir einfach die OOo SDK, dort findest du alles zum Programmieren auch mit anderen Sprachen.
Star-Basic mit all seinen Schwächen ist eben etwas für die schnelle Lösung zwischendurch und für nicht so eingefleischte Programmierer.
Gruss
Thomas
Funktionsweise des Makroeditors
Moderator: Moderatoren
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Vatar,
also, der Dispatcher ist mir auch nicht so geheuer.
Aber es gint ja auch "richtigen" Code:
Dies fügt im aktuellen Dokument die Tabelle "Test" ein, falls sie nicht schon existiert.
Die Input-Box kannst du übernehmen, die Variable "tableName" enthält ja jetzt den Namen, der eingegeben wurde.
Diesen solltest du jedoch zunächst einer Fehler-Kontrolle unterwerfen. Für Testzwecke im obrigen Code dann allerdings auch "Test" durch den Variablennamen (hier also tableName) ersetzen (ohne Anführungszeichen). Dann müsste es schon laufen.
Gruss
Thomas
also, der Dispatcher ist mir auch nicht so geheuer.
Aber es gint ja auch "richtigen" Code:
Code: Alles auswählen
Sub Main
oDoc=thisComponent
if oDoc.Sheets.hasbyname("Test") then
oSheet=oDoc.sheets.getByName("Test")
else
oSheet=oDoc.createInstance("com.sun.star.sheet.Spreadsheet")
oDoc.sheets.insertByName("Test", oSheet)
end if
end sub
Die Input-Box kannst du übernehmen, die Variable "tableName" enthält ja jetzt den Namen, der eingegeben wurde.
Diesen solltest du jedoch zunächst einer Fehler-Kontrolle unterwerfen. Für Testzwecke im obrigen Code dann allerdings auch "Test" durch den Variablennamen (hier also tableName) ersetzen (ohne Anführungszeichen). Dann müsste es schon laufen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic