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 Auftragsformular

  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

  • Broschüre VBA-Programmierung

    108002 Hier können Sie eine sehr schöne und lehrreiche Broschüre über VBA-Grundlagen downloaden. Diese Broschüre liegt auf dem Server der Fern Uni Hagen. Es lohnt sich auf jeden Fall, dieses Script...

  • 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 trägt diese in Spalte A ab Zeile 1 nacheinander in...

  • 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...

  • Markierte Zellen summieren

      Mit dieser Prozedur, werden alle markierten Zellen summiert. Dabei wird geprüft, ob die einzelnen Zellen eine Zahl enthalten. Nur dann wird die Zelle in die Summenbildung mit einbezogen.   Geben Sie...

  • Add-In im Netzwerk verwenden

      Normalerweise werden Add-Ins lokal installiert. Excel schlägt als Standardordner zur Ablage von Add-Ins einen lokalen Ordner vor, welcher abhängig von der verwendeten Office-Version ist. Unter Excel 2003...