Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Office64-bit erkennen
28.02.2013 20:37:21
Albert
Liebe VBA Experten,
ich möchte beim Start einer Datei die Officeversion (32 oder 64 Bit) abfragen und habe folgenden Code verwendet. Das Problem ist nun, dass auf dem Rechner mit der 32 Bitversion die MsgBox eingeblendet wird, die Abfrage vom Rechner mit der 64 Bitversion jedoch übergangen wird. Wenn ich mit "Application.OperatingSystem" eine Systemabfrage auf diesem Rechner mache wird jedoch folgende Version angezeigt "Windows (64-bit) NT 6.01".
Private Sub Workbook_Open()
If Application.OperatingSystem = "Windows (64-bit) NT 6.01" Then
MsgBox ("Dies ist eine 64-Bit Officeversion und die wird von diesem Programm nicht unterstützt") _
Else
MsgBox ("Dies ist eine 32-Bit Officeversion")
End If
Auch diese Abfrage wird vom Rechner mit der 64 Bit-Version ignoriert
'#If Win64 Then
'    MsgBox ("Es wird nur Office in der 32-Bitversion unterstützt")
'    ActiveWorkbook.Close
'    Application.Quit
'#End If
End Sub

Wer kann mir da weiterhelfen, vielen Dank im Voraus
Albert

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Office64-bit erkennen
01.03.2013 09:03:46
EtoPHG
Hallo Albert,
probier mal:
Sub Sub Versionen()
#If Win64 Then
MsgBox "WIN 64bit"
#Else
MsgBox "WIN 32bit"
#End If
#If VBA7 Then
MsgBox "OFFICE 64bit"
#Else
MsgBox "OFFICE 32bit"
#End If
End Sub
Gruess Hansueli

AW: Office64-bit erkennen
01.03.2013 17:03:59
Luschi
Hallo Hansueli,
so ganz stimmt das mit der Abfrage von #Vba7 nicht, siehe Grafik:
Userbild
Wenn ich im Direktfenster ? Vba7 eingebe, kommt als Ergebnis nur eine Leerzeile!
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Office64-bit erkennen
01.03.2013 19:17:46
EtoPHG
Hallo Luschi,
Da hast du recht, bzw. ich möchte mich rechtfertigen ;-)
Der Grund für die Abfrage, ob der Code auf einem 64Bit System läuft oder nicht, ist die Tatsache das in letzterem die Zeigerdatentypen anders deklariert werden müssen, da diese auf grössere Adressräume verweisen können. D.h. die Msgbox "Office 64bit" sagt zwar nicht aus, dass ein Office-64Bit installiert ist, aber dass diese Zeigertypen mit PtrSafe qualifiziert werden müssen. Darum ist in diesem Fall (VBA7) richtig, dass Zeiger und Handles mit dem vorangestellten Qualifier PtrSafe definiert werden müssen, obwohl ein 32bit Office installiert ist.
Gruess Hansueli

Anzeige
AW: Office64-bit erkennen
01.03.2013 23:00:48
Luschi
Hallo Hansueli,
ich schreibe meinen Vba-Code mit einem 32-bit-Excel und verwende viele API-Funktionen.
Jetzt hat eine Firma auf Win8-64 mit Office 2010-64 umgestellt; doch der Chef-Controller hat
auf ein Office 2010-32 bestandem, da er viele ActiveX-Steuerelemente auf Blattebene einsetzt, für die es keine 64-bit-Versionen gibt. Also darf ich nun auf meinen Code anpassen.
M$ hat dazu hier Hinweise gegeben:
http://msdn.microsoft.com/de-de/library/office/ee691831%28v=office.14%29.aspx
Aber richtig helfen tun sie mir nicht, da eben auch auf dem 32-bit-Office das bedingte _ Kompilieren von

#if VBA7 Then    ' VBA7
Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
'... weitere Code
#else    ' Downlevel when using previous version of VBA7
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
'... weitere Code
#end if
in den If-Zweig springt und dann der Debugger sich meldet.
Bin für jeden Hinweis zu diesem M$-Heckmeck dankbar.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Office64-bit erkennen
02.03.2013 00:09:23
EtoPHG
Hallo Luschi,
Für dein Beispiel muss der Code den if-Then Zweig laufen, denn das DLL läuft auf einem 64Bit Windows.
Wenn aber deine Mappe mit ActiveX-Steuerelementen ausgestattet ist und es sowohl auf einem
64Bit-Office, wie auf einem 32Bit-Office laufen muss, dann hast du ein Problem, das du nicht mit VBA lösen kannst. 64Bit-Office Anwendungen, können nur mit 64Bit-ActiveX Steuerelementen auf einem 64Bit-Windows laufen. Die 32Bit-Office Anwendung kannst du sowohl auf 64, wie auf 32Bit-Windows betreiben. Konkret: du brauchst 2 verschiedene Mappenversionen, eine für 64-Office (mit 64Bit-ActiveX und 64Bit-Windows) und eine für 32Bit-Office (mit 32Bit-ActiveX für 64Bit-Win oder 32Bit-Win).
Alles klar?
Gruess Hansueli

Anzeige
AW: Office64-bit erkennen
02.03.2013 06:08:08
Luschi
Hallo Hansueli,
danke für Deine Infos - da muß ich dann doch in den sauren Apfel beißen.
Wie heißt es doch so schön: Doppelt hält besser!
Nur das ich nun doch wieder den gerade wegen Stromsparens abgeschalteten 2. Rechner
anstöpzeln muß, wird der Stromindustrie sicher freuenund nicht mir.
Gruß von Luschi
aus klein-Paris

16 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige