ich versuche meine ersten Schritte in der Makro-Programmierung in BASIC und habe mir ein kleines Projekt überlegt.
Ziel:
Ich möchte aus einem „Dialog“ heraus ein Kombinationsfeld verwenden, in dem es Einträge gibt. Der Benutzer soll einen Eintrag auswählen und abhängig davon soll eine Text-Eingabe in eine bestimmt Zelle einer bestimmten Spalte eines Calc-Dokumentes geschrieben werden. (z. B. Kombinationsfeld-Eintrag 1 soll in Spalte C geschrieben werden; Kombinationsfeld-Eintrag 2 soll in Spalte D geschrieben werden)
Als Lern-Einstieg habe ich u. a. das Skript von „ Andrew Pitonyak“ verwendet.
In dem – nach Anleitung – selbst erstellten „Modul“ „OOME_30“ von Andrew Pitonyak hat eine ähnliche Funktion bei mir auch funktioniert. (Kombinationsfeld mit Farb-Auswahl → z. B. Auswahl Kombinationsfeld-Eintrag „Rot“ → Hintergrundfarbe des Kombinationsfeld ändert sich entsprechend)
Dann wollte ich diesen Programm-Code in meinem Projekt übernehmen, modifizieren und für mein Projekt leicht anpassen, doch leider funktioniert dies nicht so, wie gewünscht. Selbst die ursprüngliche Funktionsweise mit dem Farbwechsel bekomme ich in meinem Projekt nicht ans Laufen.
Code: Alles auswählen
'S.635(637)
'Sub OOMEDlgColorBox
Sub ComboBoxOptionen
Dim oModel As Object
Dim s As String
'-->
Dim oOOMEDlg003 'Der zur Laufzeit erzeugte Dialog
REM Deklaration der Hauptvariablen
Dim oLib003 'Bibliothek, die den Dialog enthält
Dim oLibDlg003 'Dialog, wie er in der Bibliothek gespeichert ist
REM Laden der Bibliothek und des Dialogs.
'DialogLibraries.loadLibrary("OOME_30")
DialogLibraries.LoadLibrary("Standard")
'oLib = DialogLibraries.getByName("OOME_30")
oLib003 = DialogLibraries.getByName("Standard")
'oLibDlg = oLib.getByName("OOMESample")
oLibDlg003 = oLib003.getByName("DLG_ComboBox_002")
oOOMEDlg003 = CreateUnoDialog(oLibDlg003)
'<--
oModel = oOOMEDlg003.getModel().getByName("ColorBox")
s = oModel.Text
If s = "Rot" Then
' REM Umstellung auf Rot.
oModel.BackGroundColor = RGB(255, 0, 0)
' oOOMEDlg003.getModel().getByName("lbl_Anzeige").Label = "Rot"
' oOOMEDlg003.getModel().getByName("lbl_Anzeige").Title = "Rot"
' oOOMEDlg003.getModel().getByName("txt_Anzeige").Text = "Rot"
ElseIf s = "Grün" Then
REM Umstellung auf Grün.
oModel.BackGroundColor = RGB(0, 255, 0)
ElseIf s = "Blau" Then
REM Umstellung auf Blau.
oModel.BackGroundColor = RGB(0, 0, 255)
Else
REM Umstellung zurück auf Weiß.
oModel.BackGroundColor = RGB(255, 255, 255)
End If
End Sub
Meine selbst erstellten „BASIC-Module“ und „BASIC-Dialoge“ befinden sich in „Meine Makros & Dialoge“ → „Standard“. Falls dies irgend welche Auswirkungen hat auf das Einbinden von Bibliotheken oder ähnliches, sei dies noch erwähnt.
Ich hoffe, ich habe alle nötigen Informationen für eine Hilfe zusammengestellt.
Wäre super, wenn jemand eine Idee hätte, woran es bei mir liegen könnte und mich unterstützen könnte.
Schonmal Danke im Vorfeld.
Viele Grüße
Karl_der_Grosse