ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 10.01.2000

Diese Seite wurde zuletzt aktualisiert am 10.01.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zurück...


Anzeige

(-hg) mailto:hg_minmax@aboutvb.de

Leider bietet Visual Basic keine eingebauten Funktionen zur Ermittlung des kleinsten oder größten Wertes in einem Array oder einer Auflistung (auch Sammlung, Collection genannt). Eine eigene Implementierung solcher Funktionen ist jedoch nicht schwierig.

Die Funktionen Max und Min können sowohl mit Collections als auch mit Arrays umgehen. Bei beiden wird jedoch stillschweigend vorausgesetzt, dass sie miteinander vergleichbare Werte enthalten, bei Collections zudem auch, dass sie über die Eigenschaft Count verfügen und ein Element als Voreinstellung unter der Angabe des Index ausgelesen werden kann. Tritt ein Fehler auf, brechen die Funktionen ab - der Fehler kann in der aufrufenden Ebene behandelt werden.

Public Function Max(Data As Variant) As Variant
  Dim l As Long
  Dim nMax As Variant
  Dim nVal As Variant
  
  On Error GoTo Max_Error
  If IsObject(Data) Then
    For l = 1 To Data.Count
      nVal = Data(l)
      If nVal > nMax Then
        nMax = nVal
      End If
    Next 'l
    Max = nMax
  ElseIf VarType(Data) = vbArray Then
    For l = LBound(Data) To UBound(Data)
      If Data(l) > nMax Then
        nMax = Data(l)
      End If
    Next 'l
    Max = nMax
  End If
  Exit Function
Max_Error:
End Function

Public Function Min(Data As Variant) As Variant
  Dim l As Long
  Dim nMin As Variant
  Dim nVal As Variant
  
  On Error GoTo Min_Error
  If IsObject(Data) Then
    nMin = Data(1)
    For l = 2 To Data.Count
      nVal = Data(l)
      If nVal < nMin Then
        nMin = nVal
      End If
    Next 'l
    Min = nMin
  ElseIf VarType(Data) = vbArray Then
    nMin = Data(LBound(Data))
    For l = LBound(Data) + 1 To UBound(Data)
      If Data(l) < nMin Then
        nMin = Data(l)
      End If
    Next 'l
    Min = nMin
  End If
  Exit Function
Min_Error:
End Function

Im Prinzip ist die Funktion Min lediglich die Umkehrung der Max-Funktion. Allerdings muss der Vergleichsvariablen nMin vor der Iteration durch die Elemente ein erster Wert zugewiesen werden, nämlich der Wert des ersten Elements. Anderenfalls könnte es sein, dass fälschlicherweise der Wert der uninitialisierten Variablen nMin (dieser ist gleichwertig mit 0) zurückgegeben wird, falls alle in der Collection bzw. im Array enthaltenen Werte größer als 0 sein sollten.


Modul modMinMax (modMinMax.bas - ca. 1,4 KB)






Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer