Auftragsprogrammierung

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 Unterstü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

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.

Drucken E-Mail

Relevante Artikel

  • Prüfen, ob eine Formel in einer bestimmten Zelle steht

    1. Möglichkeit ohne VBA  Um zu ermitteln, ob eine Formel in einer bestimmten Zelle steht, gibt es 2 Möglichkeiten.Bei der ersten Möglichkeit wird...

  • Windows-Prozesse auslesen und beenden

    Per VBA lassen sich sämtliche laufenden Windows-Prozesse auslesen und gezielt beenden.  Der folgende VBA-Code liest alle Windows-Prozesse aus und...

  • Tastencodes für die Funktion OnKey()

    Möchten Sie bspw. das Makro "Test_Makro" über die Tastenkombination [Strg] + [t] starten, dann können Sie dies mit dem OnKey-Befehl per VBA...

  • Sonderzeichen aus String entfernen

    In diesem Beitrag stellen wir eine Möglichkeit vor, um Sonderzeichen aus einer beliebigen Zeichenfolge zu entfernen.  Es handelt sich um eine...

  • Zahlen in Text umwandeln

    Mit Hilfe des nachfolgend vorgestellten VBA-Codes, können Zahlen (Ziffern) in Wörter (Zahlwörter) umgewandelt werden. So wird beispielsweise die...

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der 
 Lösungsfindung?

  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
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Bestätigung erklären Sie sich mit der Verwendung von Cookies auf Excel-Inside Solutions einverstanden.
Weitere Informationen Ok