Mit der hier vorgestellten Funktion CheckArrayDim wird eine beliebige Variable (Übergabe) auf DatenTyp, Dimensionszahl u. FeldArrayIndex geprüft. Dies ist ein einfache Beispielfunktion, die auf keine API-Funktion zurückgreift. ' Diese Funktion analysiert die in [vWert] übergebene Variable. ' ' vWert : beliebiger VariablenTyp ' ' Rückgabe ' iTyp : VariablenTyp ' iDim : Anzahl der Dimensionen ' iIndex() : IntegerArray->ReDim in Funktion ' ' ArrayFeldIndices ' iIndex(x, 0) : unterer Index, x.Dimension ' iIndex(x, 1) : oberer Index, x.Dimension ' Function CheckArrayDim(ByVal vWert As Variant, _ iTyp As Integer, _ iDim As Integer, _ iIndex() As Integer) As Long Dim D As Integer Dim I As Integer Dim U As Integer Dim nErr As Long Dim Ret As Long ' iTyp : ' 0 : Empty ' Variant ' 1 ' 2 : Integer ' 3 : Long ' 4 : Single ' 5 : Double ' 8 : String ' 11 : Boolean ' 12 : Variant ' <Array>: +8192 ' vbArray ' 8194 : Integer ' 8195 : Long ' 8195 = 3 + 8192 ' 8196 : Single ' 8197 : Double ' 8200 : String ' 8203 : Boolean ' 8204 : Variant iTyp = VarType(vWert) If iTyp >= vbArray Then ' ist Array On Error Resume Next ' Dimensionen bestimmen Do D = D + 1 U = UBound(vWert, D) With Err If .Number <> 0 Then ' Err: 9 nErr = .Number .Number = 0 D = D - 1 ' sub 1, weil Err End If End With Loop While nErr = 0 iDim = D On Error GoTo Err_CAD Else ' kein Array End If ' ArrayFeldIndices ReDim iIndex(iDim, 1) D = 0 For I = 1 To iDim D = D + 1 iIndex(I, 0) = LBound(vWert, D) ' unterer Index iIndex(I, 1) = UBound(vWert, D) ' oberer Index Next I ' Ret = 0 , o.k. ' <> 0 , Fehler Exit_CAD: CheckArrayDim = Ret Exit Function Err_CAD: With Err Ret = .Number .Clear End With Resume Exit_CAD End Function Testaufruf für CheckArrayDim Function CheckVariable() As Long Dim A As Long Dim AA(10) As Long Dim AAA(10, 5) As Long Dim AAAA(10, 5, 2) As Long Dim I As Integer Dim vMsg As Variant Dim iTyp As Integer Dim iDim As Integer Dim iIndex() As Integer Dim Ret As Long ' z.B.: Ret = CheckArrayDim(AAA, iTyp, iDim, iIndex) MsgBox "Ret : " & Ret & vbCr _ & "Typ : " & iTyp & vbCr _ & "Dim : " & iDim, vbInformation, "CheckArrayDim" & Space(10) ' AAA AA A ' Ret : 0 0 0 ' Typ : 8195 8195 3 ' Dim : 2 1 0 vMsg = "unterer -" & Space(2) & "oberer Index:" & vbCr For I = 1 To iDim vMsg = vMsg & iIndex(I, 0) & Space(15) & iIndex(I, 1) & vbCr Next I MsgBox vMsg, vbInformation, "ArrayFeldIndices" ' AAA ' unterer - oberer Index: ' 0 10 ' 0 5 End Function Dieser Tipp wurde bereits 9.193 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |