Basic Makros für Excel und Calc - precompiler

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von mumpel »

Hallo!

Setzte mal an den Anfang des Starbasic-Moduls die folgenden beiden Zeilen, eventuell funktioniert das ja.

Code: Alles auswählen

Option VBASupport 1
Option Compatible
Gruß, René

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von Stephan »

#if wird unter oo wohl wie if behandelt?!
Wenn Du es so ausgetestet hast wird das so sein, ich kann momentan garnichts KOnkretes dazu sagen.

In http://www.galileocomputing.de/1941 steht auf SEite 264 der grundsätzlche Vorschlag ein Makro was unter MS Excel und OOo Calc funktionieren soll so aufzubauen das einer der Funktionsteile in einer Fehlerbehandlungsroutine gekapselt wird.
(Um Seite 264 einzusehen gib in in der dortigen Volltextsuche "Basic-IDE" ein (ohne Anführungszeichen) und wähle dann aus der ERgebnisliste SEite 264. Hinweis: Die verwendung von "Basic-IDE" als Suchwort ist kein Geheincode, es geht nur um ein Suchwort welches signifikannt für die SEite ist, da es nicht möglich ist einen statischen Link für die SEite anzugeben.)

In diesem Sinne wäre das Ganze z.B. so zu lösen:

Code: Alles auswählen

Sub Generate()
    On Error Goto xls
    Dim oDlg As Object
    oDlg = CreateUnoDialog(DialogLibraries.Standard.Config)
    oDlg.getControl("TextBox1").SetText ("123")
    oDlg.execute()
    Exit Sub

    xls:
     Config.TextBox1.Text = "123"
     Config.Show
End Sub

Gruß
Stephan
mike0815
Beiträge: 8
Registriert: Fr, 16.07.2010 09:20

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von mike0815 »

Hi,
danke für die Antworten.
mumpel hat geschrieben:

Code: Alles auswählen

Option VBASupport 1
Option Compatible
VBASupport 1 wird ja bei xls-Files automatisch gesetzt. Und Compatible hat leider nichts gebracht.

@Stephan
Problem ist, dass Excel z.B. "DialogLibraries.Standard.Config" als nicht deklarierte Variablen bezeichnet und dann auch nicht in die Fehlerbehandlung springt.
Ohne "Option Explicit" funktionierts es, aber ich denke nicht das es so Sinnvoll ist dies zu deaktivieren.

Ich werde mal meine Methode mit dem MS Precompiler weiter testen (verschiedene OO und Excel versionen) und hoffen das hierbei keine probleme auftreten :)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von Stephan »

Problem ist, dass [...]
und warum wohl schrieb ich "z.B."? Eher nicht das Du den Code ohne jedes eigene Nachdenken stur übernimmst.

Du bist es doch der den Gesamtcode vor sich hat und weiß was erreicht werden soll, warum also reagierst Du nicht auf das autretende Problem damit das Du versuchst es durch eine Abänderung des Codes, unter Beibehaltung des grundsätzlichen Vorschlags (also der Unterscheidung Calc/Excel mittels Provozieren eines Fehlers), zu vermeiden?

z.B. (und das meint wieder nur "z.B." und gilt nicht zwingend wörtlich):

Code: Alles auswählen

Option Explicit

Sub Generate()
Dim x
Dim Config
On Error GoTo calc
x = Application
Call ExcelCodeAusfuehren
Exit Sub

calc:
On Error GoTo 0
Call CalcCodeAusfuehren
End Sub

Sub ExcelCodeAusfuehren()
Config.TextBox1.Text = "123"
Config.Show
End Sub

Sub CalcCodeAusfuehren()
Dim oDlg As Object
oDlg = CreateUnoDialog(DialogLibraries.Standard.Config)
oDlg.getControl("TextBox1").SetText ("123")
oDlg.Execute
End Sub



Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von Stephan »

Nachtrag:

so, ich habe das nun mal konkret getestet, obiger code läuft bei mir (OOo 3.0.1, MS Excel 2000) einwandfrei.



Gruß
Stephan
Dateianhänge
Dialog_starten_Calc-Excel.xls
(32.5 KiB) 43-mal heruntergeladen
mike0815
Beiträge: 8
Registriert: Fr, 16.07.2010 09:20

Re: Basic Makros für Excel und Calc - precompiler

Beitrag von mike0815 »

Der code funktioniert, so hatte ich es auch zuerst gehabt. Hierbei muss halt der starbasic code immer ganz am ende des Moduls sein, damit es keine Fehler gibt.
"Problem" ist wenn eine Funktion mehrere 100 Zeilen groß ist (nichts komplexes -> von a nach b kopieren, c bearbeiten, etc) aber zwischen drin einzelne Zeilen starbasic kompatibel gemacht werden müssen. Jede Funktion zweimal zu haben wird zu unübersichtlich, da dann immer beide gleichzeitig erweitert werden muss.
Ich werde zwar nach und nach die einzelnen "Problemfunktionen" durch eigene ersetzten, aber momentan ist die Lösung mit dem Precompiler etwas einfacher.
Antworten