[gelöst]Cursor über Makro positionieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Cursor über Makro positionieren

Re: Cursor über Makro positionieren

von Stephan » So, 14.03.2021 12:00

...so gehts:
das selektiert einen Zellreich, aber positioniert keinen Cursor, wonach doch eigentlich gefragt war.

"mikeleb" der sich genau an dieser Stelle wohl unsicher (wie ich auch) und der augenscheinliche Grund das "mikeleb" fragte ist das das Selektieren eines Zellbereichs leicht machbar ist, das Positionieren des Cursors in Calc hingegen nicht unbedingt.
Da man Letzteres auch kaum braucht habe ich dafür nicht einmal einen 'nativen' Code greifbar, sondern würde mit dispatcher arbeiten. Das Folgende positioniert den sichtbaren Cursor ans Ende des Textes in Zelle A1 des aktiven Tabellenblatts:

Code: Alles auswählen

Sub Main
	akt_blatt = ThisComponent.CurrentController.ActiveSheet
	akt_zelle = akt_blatt.getCellRangeByName("A1")
	ThisComponent.CurrentController.Select(akt_zelle)
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dispatcher.executeDispatch(document, ".uno:SetInputMode", "", 0, Array())
End Sub
Bei Writer ist das Arbeiten mit dem Cursor hingegen etwas Tagtägliches, weswegen Du reichlich Beispiele dazu im Netz findest, z.B.:
http://www.dannenhoefer.de/faqstarbasic/cursor.html
http://www.dannenhoefer.de/faqstarbasic ... sorum.html



Gruß
Stephan

Re: Cursor über Makro positionieren

von dinner4one » So, 14.03.2021 11:42

...so gehts:

Code: Alles auswählen

'###############################################################
function _BlattName as string
	dim Mappe    as object
	dim Methoden as object
	
	Mappe      = ThisComponent
	Methoden   = Mappe.CurrentController
	_BlattName = Methoden.ActiveSheet.Name
end function

'###############################################################
sub _CursorPos (Pos as string)
	dim Mappe    as object
	dim Methoden as object
	dim Blatt    as object
	dim Bereich  as object

	Mappe     = ThisComponent
	Methoden  = Mappe.CurrentController
	Blatt     = Mappe.Sheets.getByName(_BlattName)
	Bereich   = Blatt.getCellRangeByName(Pos)

	Methoden.Select(Bereich)
end sub

Re: Cursor über Makro positionieren

von dinner4one » So, 14.03.2021 11:17

@mikeleb

Fragestellung im Betreff, stimmt

@gast

danke guter Link

Re: Cursor über Makro positionieren

von mikeleb » So, 14.03.2021 11:08

Hallo,
Ich verstehe noch nicht so richtig, was du vorhast.
Bereich activate
erinnert mich an meine Denkweise von MSOffice VBA.
In Calc läuftdas etwas anders. Du musst keinen Bereich aktivieren, um mit ihm etwas machen zu können.
Also: Was hast du vor?

[gelöst]Cursor über Makro positionieren

von dinner4one » So, 14.03.2021 10:02

Hallo,

wie platziere ich den Cursor in Calc über ein Basic Makro und wo gibt es dazu Dokumentationen.

Danke

hier mal wo ich bin:

sub test_CursorPos (Pos as string)
dim Mappe as object
dim Blatt as object
dim Bereich as object
dim BlattName as string

Mappe = ThisComponent
BlattName = Mappe.CurrentController.ActiveSheet.Name
Blatt = Mappe.Sheets.getByName(BlattName)
Bereich = Blatt.getCellRangeByName(Pos)

'ab hier ist mein latein am ende :)
Bereich.GotoCell ??
Bereich activate ??

end sub

Nach oben