Hallo Leute,
ich bin gerade dabei, von VBA auf Basic umzulernen und habe gleich zu Beginn ein paar Probleme:
Ich habe ja in Basic Module, Dialoge und Bibiotheken. Der eigentliche Basic Code (als Prozedur oder Funktion) kommt in die Module oder?
Wenn ich dann so eine Prozedur habe, schaffe ich es aber nicht, ein Textfeld in einem bestimmten Writer-Dokument anzusprechen. Wie weise ich denn eine Prozedur einem Dokument zu und kann darin Objekte ansprechen? Die Codeschnipsel, die hier im Forum gepostet werden, sind mir da nicht eindeutig.
Robert
Prozedur einem Dokument und anderen Objekten zuweisen?
Moderator: Moderatoren
-
- Beiträge: 5
- Registriert: Mo, 28.11.2005 19:53
- Kontaktdaten:
Hey Robert,
Gruss
Thomas
Das ist richtig. Jetzt kannst du aber noch entscheiden, den Code im Dokument oder global zu speichern.ich habe ja in Basic Module, Dialoge und Bibiotheken. Der eigentliche Basic Code (als Prozedur oder Funktion) kommt in die Module oder?
Das ist normal - da empfehle ich einfach ein wenig Literaturstudium. Das hilft enorm. Im ersten Thread des Basic-Forums sind die wichtigsten, freien Quellen aufgeführt. Ansosten: ein gutes Buch... siehe untenich bin gerade dabei, von VBA auf Basic umzulernen und habe gleich zu Beginn ein paar Probleme

Tia, was für ein Textfeld in welchem Dokument? das ist alles zu ungenau... da kann man nicht helfen. Da bräuchte ich schon ein paar mehr Daten.ein Textfeld in einem bestimmten Writer-Dokument anzusprechen
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
-
- Beiträge: 5
- Registriert: Mo, 28.11.2005 19:53
- Kontaktdaten:
Hallo Toxitom,
danke für die Tips. Das "Basic Programmierhandbuch" von Sun ist eine gute Einführung in Basic. Ich habe es nun hinbekommen, ein Makro zu erarbeiten, das in einem Dokument liegt und bei dem Ereignis "Dokument öffnen" ausgeführt wird. Dabei wird ein Dialog aufgerufen mit einem Formular, das mehrere Textfelder enthält. Diese werden bei dann von dem Makro ausgelesen und in die Fußzeile des Dokuments geschrieben. Mein Dokument
Hier der Quelldode:
Doch was ich nicht geschafft habe, ist dass ich die Fußzeile dann auch automatisch per Makro schützen kann. "Per Hand" geht das ja über --> Einfügen --> Bereich. Doch wird das nicht von dem Makro Rekorder aufgezeichnet. Welche Möglichkeit habe ich denn, die Fußzeile zu schützen?
Robert
danke für die Tips. Das "Basic Programmierhandbuch" von Sun ist eine gute Einführung in Basic. Ich habe es nun hinbekommen, ein Makro zu erarbeiten, das in einem Dokument liegt und bei dem Ereignis "Dokument öffnen" ausgeführt wird. Dabei wird ein Dialog aufgerufen mit einem Formular, das mehrere Textfelder enthält. Diese werden bei dann von dem Makro ausgelesen und in die Fußzeile des Dokuments geschrieben. Mein Dokument
Hier der Quelldode:
Code: Alles auswählen
Option Explicit
sub entry_name
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")
Dim Dlg As Object
dim tb_vname as string
dim tb_nname as string
dim tb_matr as string
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.entry_name)
Dlg.Execute()
tb_vname = Dlg.getControl("tb_vname").text
tb_nname = Dlg.getControl("tb_nname").text
tb_matr = Dlg.getControl("tb_matr").text
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "PageStyle"
args1(0).Value = "Standard"
args1(1).Name = "On"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:InsertPageFooter", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Text"
args2(0).Value = tb_vname + " " + tb_nname + " (" + tb_matr + ")"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args2())
'ThisComponent.CurrentController.getViewCursor.textSection.IsProtected=true
Dlg.dispose()
end sub
Robert