Gemeinsam zu mehr Effizienz in der Anwendungserstellung
K |
K |
||
| Zeile 4: | Zeile 4: | ||
<source> | <source> | ||
| - | + | Private Function IsInitializedLongArray(ByRef ArrayToCheck() As Long) | |
| + | IsInitializedLongArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) | ||
| + | End Function | ||
| - | + | Private Function IsInitializedStringArray(ByRef ArrayToCheck() As String) | |
| - | + | IsInitializedStringArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) | |
| - | + | End Function | |
| - | + | ||
| - | + | ... | |
| - | + | ||
</source> | </source> | ||
| + | |||
| + | === Anwendung === | ||
<source> | <source> | ||
Dim TestArray() As Long | Dim TestArray() As Long | ||
| - | |||
| - | |||
Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | ||
| - | + | If IsInitializedLongArray(TestArray) Then | |
| - | If ( | + | Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) |
| + | Else | ||
Debug.Print "Array ist nicht initialisiert" | Debug.Print "Array ist nicht initialisiert" | ||
| - | |||
| - | |||
End If | End If | ||
</source> | </source> | ||
| - | |||
<source> | <source> | ||
| - | Dim TestArray( | + | Dim TestArray() As Long |
| + | |||
| + | ReDim TestArray(3) | ||
Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), | ||
| - | + | If IsInitializedLongArray(TestArray) Then | |
| - | If ( | + | Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) |
| + | Else | ||
Debug.Print "Array ist nicht initialisiert" | Debug.Print "Array ist nicht initialisiert" | ||
| - | |||
| - | |||
End If | End If | ||
| - | |||
</source> | </source> | ||
Mit IsArray(..) kann man zwar prüfen, ob eine Variable ein Array beinhaltet, man kann aber nicht prüfen, ob ein dynamisches Array dimensioniert/initialisiert ist.
Private Function IsInitializedLongArray(ByRef ArrayToCheck() As Long) IsInitializedLongArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) End Function Private Function IsInitializedStringArray(ByRef ArrayToCheck() As String) IsInitializedStringArray = Not ((0 / 1) + (Not Not ArrayToCheck) = 0) End Function ...
Dim TestArray() As Long Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), If IsInitializedLongArray(TestArray) Then Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) Else Debug.Print "Array ist nicht initialisiert" End If
Dim TestArray() As Long ReDim TestArray(3) Debug.Print "IsArray(TestArray) = "; IsArray(TestArray), If IsInitializedLongArray(TestArray) Then Debug.Print "Array ist initialisiert", "UBound(TestArray) = "; UBound(TestArray) Else Debug.Print "Array ist nicht initialisiert" End If