Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: OS X Entwicklerforum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Dienstag, 10. April 2012, 22:59

Excel VBA (mit GUI) Programm von Win auf Mac

Guten Abend allerseits,

Ich wollte mal nachfragen ob hier irgendwer Erfahrung hat mit Excel-basierten "Programmen", also Excel-Dokumente mit VBA und einer GUI und vor allem mit den Unterschieden zwischen der Windows und der Mac Version. Was geht unter Windows was unter Mac sicher nicht geht? Gibt es irgendetwas auf das man besonders achten sollte?

Es geht im Prinzip um ein Berechnungs-Programm, welches von einem Lehrstuhl an meiner Uni für die Excel Version von Windows entwickelt wurde und jetzt stand die Frage im Raum ob es möglich sei, dieses auch ohne größeren Aufwand unter Mac laufen zu lassen. Das Programm selbst besteht aus einem Haupt- und 3 kleinen Nebenfenstern, mit einigen Buttons, Textfeldern und einem Grafikelement und die Berechnungen werden halt mithilfe von Tabellen gemacht. Also es wird nicht aufs Dateisystem zugegriffen oder ähnliches.

Beim Starten kommt gleich ein Automatisierungsfehler xy, welcher laut kurzem googlen schon bei unterschiedlichen Kleinigkeiten auftreten kann, weswegen es kein wirklicher Hinweis gibt, wieso das Programm nicht will. Was auch recht lustig ist: Will ich nach einem Stichwort im Quellcode suchen, bekomme ich eine Fehlermeldung von Excel "Nicht genügend Arbeitsspeicher.". - Ich wusste bisher nicht, dass man für eine Textsuche mehr als 2GB freien Arbeitsspeicher benötigen kann.

Bevor ich mich jetzt da reinsteigere, wollte ich hier erstmal nachfragen ob jemand vielleicht irgendwelche nützliche Tipps hat.

lg,
-TX-

Beiträge: 9 635

Wohnort: Suedtirol (Italien)

Beruf: Software-Entwickler

  • Private Nachricht senden

2

Mittwoch, 11. April 2012, 00:23

kommt auf di office-version an. einige der letzten versionen hatten gar keinen visual-basic-supprot.

3

Mittwoch, 11. April 2012, 07:33

Ohne die Fehlermeldung und den Quellcode des Programmes zu kennen wird es schwer, dir zu helfen...

4

Mittwoch, 11. April 2012, 10:07

Also Excel für Mac 2011 hat Visual Basic Support.
Zumindest meins.

Eigentlich sollte das kompatibel sein.
Hilfreich? Dann freue ich mich über eine kleine Spende. :) Flattr this
----
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
----

Beiträge: 9 862

Wohnort: Klüngelshausen

Beruf: 1,5

Hobbys: Maulaffen feilhalten, Starkstrom

  • Private Nachricht senden

5

Mittwoch, 11. April 2012, 10:20

Also Excel für Mac 2011 hat Visual Basic Support.

Die 2008er Version hatte aber keine Unterstützung. Meines Wissens hat Micro$oft die nur bei dieser Version rausgenommen...
„Meine Komplikation hatte eine Komplikation.“

Apps programmieren für iPhone und iPad

6

Mittwoch, 11. April 2012, 10:36

Also Excel für Mac 2011 hat Visual Basic Support.

Die 2008er Version hatte aber keine Unterstützung. Meines Wissens hat Micro$oft die nur bei dieser Version rausgenommen...

What gritsch said. Nu haben wir auch nen Schuldigen. ;) Die 2008er.
Hilfreich? Dann freue ich mich über eine kleine Spende. :) Flattr this
----
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
----

7

Mittwoch, 11. April 2012, 12:22

kommt auf di office-version an. einige der letzten versionen hatten gar keinen visual-basic-supprot.

Mir ist schon bewusst, dass einige Versionen (unter anderem die 2008er) kein VBA können. Allerdings hast du natürlich Recht, ich hätte erwähnen sollen, dass es mit der 2011er versucht habe. ;) Alles vor 2011 lassen wir mal brav weg, sogar wenn sie VBA können. Es würde schon reichen, wenn das Progamm mit der neusten Version laufen würde.

Ohne die Fehlermeldung und den Quellcode des Programmes zu kennen wird es schwer, dir zu helfen...

Der Fehler lautet:

Quellcode

1
2
Laufzeitfehler "-2147483640 (80000008)".:
Automatisierungsfehler

(Code-Tag wegen Smiley...)
Wie oben schon erwähnt, scheint dieser Fehler bei unterschiedlichen Sachen aufzutreten.

Den Quellcode würde ich gerne hochladen, allerdings frage ich lieber nochmal bei dem Lehrstuhl um Erlaubnis, nicht dass ich nachher noch Ärger bekomme...

8

Mittwoch, 2. Mai 2012, 22:13

Ich wende mich jetzt nochmal an euch mit einigen konkreteren Infos.

Zur Darstellung wird auf die "gdi32" Library von Windows zurückgegriffen. Diese existiert natürlich nicht unter Mac. Meine Frage wäre also ob es eine Mac-kompatible Alternative gibt? Ich habe weder bei Microsoft selbst noch sonst wo konkrete Informationen dazu gefunden. Hat hier vielleicht jemand sich schon mal mit dem Thema beschäftigt?

Ein Auszug aus dem Quellcode:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, cPoint As POINTAPI) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, cPoint As POINTAPI) As Long
Private Declare Function DPtoLP Lib "gdi32" (ByVal hDC As Long, cPoint As POINTAPI, ByVal Ncount As Long) As Long
Private Declare Function LPtoDP Lib "gdi32" (ByVal hDC As Long, cPoint As POINTAPI, ByVal Ncount As Long) As Long
Private Declare Function GetCurrentPositionEx Lib "gdi32" (ByVal hDC As Long, cPoint As POINTAPI) As Long

Private Declare Function SetMapMode Lib "gdi32" (ByVal hDC As Long, fnMapMode As Long) As Long
Private Declare Function GetViewportExtEx Lib "gdi32" (ByVal hDC As Long, cPoint As TAGSIZE) As Long
Private Declare Function GetViewportOrgEx Lib "gdi32" (ByVal hDC As Long, cPoint As POINTAPI) As Long
Private Declare Function GetWindowExtEx Lib "gdi32" (ByVal hDC As Long, cPoint As TAGSIZE) As Long
Private Declare Function GetWindowOrgEx Lib "gdi32" (ByVal hDC As Long, cPoint As POINTAPI) As Long
Private Declare Function SetViewportExtEx Lib "gdi32" (ByVal hDC As Long, cX As Long, cY As Long, cPoint As TAGSIZE) As Long
Private Declare Function SetWindowExtEx Lib "gdi32" (ByVal hDC As Long, cX As Long, cY As Long, cPoint As TAGSIZE) As Long

Private Declare Function MoveToEx Lib "gdi32" ( _
     ByVal hDC As Long, _
     ByVal X As Long, _
     ByVal Y As Long, _
     ByVal lppoint As Long) As Long 'lpPoint wird nicht benötigt

Private Declare Function LineTo Lib "gdi32" ( _
     ByVal hDC As Long, _
     ByVal X As Long, _
     ByVal Y As Long) As Long
     
Private Declare Function Rectangle Lib "gdi32" ( _
    ByVal hDC As Long, _
    ByVal nLeftRect As Long, _
    ByVal nTopRect As Long, _
    ByVal nRightRect As Long, _
    ByVal nBottomRect As Long) As Long
    
Private Declare Function Ellipse Lib "gdi32" ( _
    ByVal hDC As Long, _
    ByVal nLeftRect As Long, _
    ByVal nTopRect As Long, _
    ByVal nRightRect As Long, _
    ByVal nBottomRect As Long) As Long
    
Private Declare Function Polygon Lib "gdi32" ( _
    ByVal hDC As Long, _
    ByRef lppoint As POINTAPI, _
    ByVal Ncount As Long) As Long
    
Private Declare Function PolyBezier Lib "gdi32" ( _
    ByVal hDC As Long, _
    ByRef lppoint As POINTAPI, _
    ByVal cPoints As Long) As Long

9

Mittwoch, 2. Mai 2012, 23:20

GDI ist mehr oder weniger der Kern der Windows Oberfläche, da wird es schwer werden, einen Ersatz zu finden. Du kannst Dein Glück mit Wine probieren, da sollte es ein GDI für X11 dabei haben - aber ich schätze da den Aufwand immer noch größer ein, als einfach alles nochmal neu zu machen.
C++

Ähnliche Themen

Social Bookmarks