VBA Ändern des Codeverhaltens zur Kompilierzeit


Beispiel

Die #Const Direktive wird verwendet, um eine benutzerdefinierte Präprozessorkonstante zu definieren. Diese können später von #If verwendet werden, #If zu steuern, welche Codeblöcke kompiliert und ausgeführt werden.

#Const DEBUGMODE = 1

#If DEBUGMODE Then
    Const filepath As String = "C:\Users\UserName\Path\To\File.txt"
#Else
    Const filepath As String = "\\server\share\path\to\file.txt"
#End If

Dies führt dazu, dass der filepath auf "C:\Users\UserName\Path\To\File.txt" . #Const Zeile #Const DEBUGMODE = 0 oder in #Const DEBUGMODE = 0 filepath wird der filepath auf "\\server\share\path\to\file.txt" .

#Const Scope

Die Direktive #Const ist nur für eine einzelne #Const (Modul oder Klasse) wirksam. Sie muss für jede einzelne Datei deklariert werden, in der Sie Ihre benutzerdefinierte Konstante verwenden möchten. Alternativ können Sie eine #Const für Ihr Projekt deklarieren, indem Sie auf Tools >> [Ihr Projektname] Projekteigenschaften klicken. Daraufhin wird das Dialogfeld Projekteigenschaften geöffnet, in das die Konstantendeklaration eingegeben wird. [constName] = [value] im Feld "Bedingte Kompilierungsargumente" [constName] = [value] . Sie können mehr als eine Konstante eingeben, indem Sie sie mit einem Doppelpunkt [constName1] = [value1] : [constName2] = [value2] , wie [constName1] = [value1] : [constName2] = [value2] .

VBA-Projekteigenschaften (Dialogfeld)

Vordefinierte Konstanten

Einige Kompilierungskonstanten sind bereits vordefiniert. Welche davon existieren, hängt von der Bitness der Office-Version ab, in der Sie VBA ausführen. Beachten Sie, dass Vba7 neben Office 2010 zur Unterstützung von 64-Bit-Versionen von Office eingeführt wurde.

Konstante 16 bit 32 bit 64 bit
Vba6 Falsch Wenn Vba6 Falsch
Vba7 Falsch Wenn Vba7 Wahr
Win16 Wahr Falsch Falsch
Win32 Falsch Wahr Wahr
Win64 Falsch Falsch Wahr
Mac Falsch Wenn Mac Wenn Mac

Beachten Sie, dass sich Win64 / Win32 auf die Office-Version und nicht auf die Windows-Version beziehen. Beispiel: Win32 = TRUE in 32-Bit-Office, auch wenn das Betriebssystem eine 64-Bit-Version von Windows ist.