Hallo Listlinge,
in einem Calc-Dokument habe ich 10-15 Tabellen. In jeder Tabelle sind 6 Bereiche definiert, welche nur in der jeweiligen Tabelle gültig sind. Die Bereiche befinden sich in jeder Tabelle an der gleichen Stelle und haben die gleichen Namen.
Bereichsnamen:
_ID
_Lagerplatz
_Artikel
_Index
_Datenbereich
_SV_Datenbereich
Nun habe ich mir ein Makro aufzeichnen lassen, welches mir den Bereichsnamen anzeigt, da dies zur Erläuterung der jeweiligen Darstellung sehr hilfreich ist.
sub _Datenbereich
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "_Datenbereich (Tabelle 1)"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
end Sub
Diese Subroutine habe ich kopiert und mit den entsprechenden Änderungen der Tabellennamen für alle Bereiche zum Laufen gebracht.
Der Quellcode unterscheidet sich ja lediglich durch den Funktionsnamen und den Namen der Tabelle. Der Code ist somit sehr redundant. Wenn ich das Ganze jetzt in dieser Form auf 10-15 Tabellen erweitere, muss ich neben den Bereichsnamen auch eine entsprechende Anzahl an Subroutinen definieren.
Gibt es denn die Möglichkeit, der jeweiligen Subroutine den Namen der Tabelle zu übergeben?
Oder könnte der in der Subroutine angegebene Bereichsname grundsätzlich mit der aktuellen Tabelle verbunden werden?
Vielleicht gibt es ja noch eine viel einfachere Lösung!?
Liebe Grüße
josinoro
VERGLEICH Makro.ods (25,1 KB)