Textbausteine in Calc

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Gunpriest
Beiträge: 6
Registriert: Mi, 21.07.2010 12:03

Textbausteine in Calc

Beitrag von Gunpriest »

Hallo,

da wir nur mit Tabellenkalkulation arbeiten (bisher Excel 98), würden wir beim Umsteig auf OOo gerne in Calc unsere Textbausteine (einfügen per Tastenkürzel) weiterverwenden. Nun funktioniert Autotext nicht in Calc, weswegen eine andere Lösung her muss.

Ich habe mit meinen begrenzten BASIC-Kenntnissen mal dieses Makro zusammengebastelt. Hier sollte aus einer Calc-Datei mit den Textbausteinen der Textbaustein kopiert und in das geöffnete Calcdokument, dort wo der Cursor sitzt, der Textbaustein eingefügt werden. Funktioniert natürlich noch nicht (ganz), da mir hier noch diverse Sachen fehlen. Wenn ich das Makro etwas umschreibe, funktioniert es mit einem fest definiertem Zielfeld und nur innerhalb der Quelldatei, aber das ist nicht das, was ich möchte.

Code: Alles auswählen

Sub Textbaustein_Test
	Dim SourceDoc as Variant
	Dim TargetDoc as Variant
	Dim SourceSheet as Variant
	Dim TargetSheet as Variant
		
REM Texte öffnen = SourceDoc	
	url=converttourl("C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Dokumente\intern\Texte.ods")
	dim myFileProp() as new com.sun.star.beans.PropertyValue
	SourceDoc = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )  'evtl. versteckt öffnen oder gleich beim Systemstart laden

REM hier evtl. noch eine If...When-Prüfung, ob die Datei bereits geöffnet ist

REM Blatt auswählen
    SourceView = SourceDoc.CurrentController
    SourceSheet = SourceDoc.Sheets.getByName("Blattname")
    SourceView.setActiveSheet(SourceSheet) 'aktiviert Blatt
	mySourceCell1 = SourceSheet.getCellRangeByName("$B$3") 'nur ein Feld zum Testen. Hier muss es eigentlich ein Zellbereich sein
	myString = mySourceCell1.string	

REM = TargetDoc
	TargetDoc = ??? 'Syntax unbekannt
	Targetsheet = TargetDoc.sheets.getByName("Blattname") 'oder was auch immer hier hingehört
	myTargetCell1 = TargetSheet.getCellRangeByName("$A$1") 'statt Fixfeld muss hier das gerade ausgewählte Feld als Ziel hin. Syntax?
	myTargetCell1.string = myString			
End Sub 
Mir allerdings nicht ganz klar, wie ich von der Quelldatei zurück zum Dokument komme, in dem das Makro gestartet wurde und in das der Textbaustein eingefügt werden soll.

Die Lösung ist auch nicht sonderlich elegant, da die Quelldatei sichtbar geöffnet wird und das Ganze mit einer deutlichen Verzögerung abläuft. Eine Lösung, bei der der Textbaustein einfach eingefügt wird, ohne dass der Anwender eine Verzögerung oder vom Ablauf etwas merkt, wäre mir wesentlich lieber.

Hat da jemand eine Idee oder gar einen fertigen Lösungvorschlag?
Eddy
********
Beiträge: 2781
Registriert: So, 02.10.2005 10:14

Re: Textbausteine in Calc

Beitrag von Eddy »

Hallo,
Hat da jemand eine Idee
ja, ich!

Frage im "Richtigen" Unterforum - OOo Basic und Java - nach.
Antworten