Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unter-stützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! oder rufen Sie uns einfach an.

   
      Referenzen 

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   
     Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
   

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der Lösungs-
 findung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
r
o
j
e
k
t
a
n
f
r
a
g
e
   

Verwendung von API Bibliotheken in Office 2010/2013 32bit und 64bit Versionen

Per VBA können API-Bibliotheken relativ einfach eingebunden werden. Bei einer API (Application Programming Interface) handelt es sich um DLL- oder EXE-Dateien die eine Schnittstelle zum Betriebssystem oder zu anderen Anwendungen darstellt. Per VBA können Daten über die API-Schnittstellen ausgetauscht werden um das Betriebssystem oder andere Anwendungen entsprechend zu steuern.

Mit Hilfe des folgenden VBA-Codes kann beispielsweise die aktuelle Bildschirmauflösung aus dem Betriebssystem ausgelesen werden.

 

Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Sub Bildschirmauflösung()
'** Bildschirmauflösung auslesen
gWidth = GetSystemMetrics(SM_CXSCREEN)
gHeight = GetSystemMetrics(SM_CYSCREEN)

'** Ausgabe
MsgBox "Bildschirmbreite: " & gWidth & vbLf & _
  "Bildschirmhöhe: " & gHeight
End Sub

Dieser Code funktioniert grundsätzlich in einer 32bit Office-Installationen.

Sobald dieser Code mit einer 64bit Office-Version aufgerufen wird kommt es zu folgender Fehlermeldung:

(Fehler beim Kompilieren: Der Code in diesem Projekt muss für die Verwendung auf 64-Bit-Systemen aktualisiert werden. Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren  Sie sie mit dem PtrSafe-Attribut.)

Wenn der oben aufgeführte Code in einer 64bit Office-Version verwendet werden soll, ist nur eine kleine Anpassung erforderlich. Die Declare Funktion Anweisung wird einfach um das Attribut PtrSafe erweitert. Die dritte Codezeile sieht nach der Anpassung für ein 64bit System wie folgt aus:

Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Mit dieser Anpassung läuft der Code sowohl unter einer 32bit als auch unter einer 64bit Office-Version.

Der gesamte Code für die 64bit Office-Installation sieht demnach folgendermaßen aus:

Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Sub Bildschirmauflösung()
'** Bildschirmauflösung auslesen
gWidth = GetSystemMetrics(SM_CXSCREEN)
gHeight = GetSystemMetrics(SM_CYSCREEN)

'** Ausgabe
MsgBox "Bildschirmbreite: " & gWidth & vbLf & _
  "Bildschirmhöhe: " & gHeight
End Sub

Hinweis:

Die Anpassung ist nur für 64bit Office-Versionen notwendig. Die Version des Betriebssystems ist dabei irrelevant. Wenn beispielsweise unter Windows 8 eine 32bit Office-Version installiert ist, kann der Zusatz PtrSafe entfallen.

   

Relevante Artikel

  • Anzahl Formeln in einer Arbeismappe ermitteln

    16010 Mit Hilfe dieser Prozedur werden alle Formeln einer Arbeitsmappe ermittelt werden. Dies kann beispielsweise für statistische Zwecke nützlich sein. Die Prozedur durchläuft alle vorhandenen...

  • Übersicht aller VBA Schlüsselwörter

    108000b Nachfolgend eine Übersicht aller VBA-Schlüsselwörter   A B 1 Deutsch Englisch 2     3 Abs Abs 4 AktiviereAnw AppActivate 5 AktVerz CurDir 6 Alle Each 7 Als As 8 AlsWert ByVal 9 AlsZeiger ByRef 10...

  • Begriffe innerhalb einer Zelle sortieren

    Mit Hilfe der benuterdefinierten Funktion (UDF) =SORTLIST(Zelle; Separator) können Einträge, welche sich innerhalb einer Zelle befinden alphabetisch sortiert werden. Die Funktion zerlegt den...

  • Entwicklungsumgebung ein- und ausblenden

    400004 Mit dem folgenden Makro kann die Entwicklungsumgebung, die normalerweise mit Alt+F11 gestartet wird ein- bzw. ausgeblendet werden.Entwicklungsumgebung einblendenPrivate Sub...

  • Ermittlung der Office-Version und Version des Betriebssystems

    108001 Mit diesem Makro kann geprüft werden, welche Office-Version bzw. welches Betriebssystem installiert ist! Im Programmablauf kann verzweigt werden und der Code entsprechend der installierten...