Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Array als Funktionsrückgabe
zurück: Addin nur in bestimmten Mappen weiter: Schleifen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Information Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Isabelle :-)
Menschin


Verfasst am:
25. Mai 2013, 01:06
Rufname:
Wohnort: Westlicher Spiralarm der Galaxis


Array als Funktionsrückgabe - Array als Funktionsrückgabe

Nach oben
       Version: Office 2k (2000)

Hallöchen,

diesmal wollen wir von einer Funktion ein Array zurückbekommen. Dazu habe ich mal ein paar Beispiele zusammengetragen.

Im Beispiel 1 holen wir uns das Array nicht in eine Variable sondern greifen jedes Mal auf die Funktion zu. Das ist natürlich sehr ineffektiv. Also so solltest du es nicht machen.

Code:
Option Explicit

Public Sub Test1()
   Dim ialngIndex As Long
   For ialngIndex = 0 To UBound(IntegerArray)
      MsgBox IntegerArray()(ialngIndex)
   Next
End Sub

Private Function IntegerArray() As Integer()
    Dim aintArray(1) As Integer
    aintArray(0) = 6
    aintArray(1) = 3
    IntegerArray = aintArray
End Function


Im Beispiel 2 holen wir das Array aus der Funktion in ein eigenes Array. Da das Array in der Funktion aber dynamisch ist und wir nicht wissen ob tatsächlich ein Array zurückgegeben wird, müssen wir es vor der Weiterverarbeitung prüfen.

Code:
Option Explicit

Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _
    ByRef psa() As Any) As Long

Public Sub Test2()
    Dim ialngIndex As Long, alngArray() As Long
    alngArray = LongArray
    If CBool(SafeArrayGetDim(alngArray)) Then
        For ialngIndex = 0 To UBound(alngArray)
           MsgBox alngArray(ialngIndex)
        Next
    End If
End Sub

Private Function LongArray() As Long()
   Dim alngArray() As Long
   ReDim alngArray(1)
   alngArray(0) = 6
   alngArray(1) = 3
   LongArray = alngArray
End Function


Im Beispiel 3 benutzt einen eigenen Datentyp als Array. Im Prinzip dasselbe wie im Beispiel 2.

Code:
Option Explicit

Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" ( _
    ByRef psa() As Any) As Long

Private Type MEIN_TYP
    adblArray1() As Double
    adblArray2() As Double
    intVariable As Integer
    lngVariable As Long
End Type

Public Sub Test3()
    Dim ialngIndex As Long, audtArray() As MEIN_TYP
    audtArray = TypeArray()
    If CBool(SafeArrayGetDim(audtArray)) Then
        For ialngIndex = 0 To UBound(audtArray)
           MsgBox audtArray(ialngIndex).intVariable
           MsgBox audtArray(ialngIndex).adblArray1(0)
        Next
    End If
End Sub

Private Function TypeArray() As MEIN_TYP()
    Dim audtArray() As MEIN_TYP
    ReDim audtArray(1)
    With audtArray(0)
        .intVariable = 6
        ReDim .adblArray1(0)
        .adblArray1(0) = 22
    End With
    With audtArray(1)
        .intVariable = 3
        ReDim .adblArray1(0)
        .adblArray1(0) = 66
    End With
    TypeArray = audtArray
End Function


Du siehst, wichtig ist erstens das Klammernpaar an der Deklaration der Funktion und dass das Array, in welches wir den Rückgabewert der Funktion schreiben, ein undimensioniertes dynamisches Array ist.

_________________
LG Isi

Die Mitgliedschaft im Forum erhöht deine Chance auf eine Antwort von mir um 99,999%
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Summewenn als Array Formel mit drei Bedingungen 12 Formelschwinger 198 17. Jan 2014, 16:41
Jensolator Summewenn als Array Formel mit drei Bedingungen
Keine neuen Beiträge Excel Formeln: ARRAY - Teilergebnis 109 12 hevi 2543 19. Nov 2013, 02:10
Luc|:-? ARRAY - Teilergebnis 109
Keine neuen Beiträge Excel Formeln: Mehrere Tabellennamen als Array durch Funktion ersetzen 12 Archi_kg 184 18. Nov 2013, 09:02
Archi_kg Mehrere Tabellennamen als Array durch Funktion ersetzen
Keine neuen Beiträge Excel Formeln: SVERWEIS mehrfach vorkommendes Suchkriterium ohne Array 3 banne 2552 11. Jul 2013, 20:41
Jürgen_H SVERWEIS mehrfach vorkommendes Suchkriterium ohne Array
Keine neuen Beiträge Excel Formeln: Max Formel in Array 5 mscola 92 16. Mai 2013, 15:35
neopa Max Formel in Array
Keine neuen Beiträge Excel Formeln: Array auslösen 2 Pat23 99 18. März 2013, 18:06
Pat23 Array auslösen
Keine neuen Beiträge Excel Formeln: Array nach Kriterien aufsummieren 1 Fat-Twin 107 18. Okt 2012, 22:53
slowboarder Array nach Kriterien aufsummieren
Keine neuen Beiträge Excel Formeln: Conditional sum ohne array 2 dubber 94 17. Okt 2012, 20:58
slowboarder Conditional sum ohne array
Keine neuen Beiträge Excel Formeln: Array auf Wertdifferenz prüfen 2 MartinBerlin 299 21. März 2012, 23:27
MartinBerlin Array auf Wertdifferenz prüfen
Keine neuen Beiträge Excel Formeln: 2 Array verbinden 4 MaxMini 1100 13. Mai 2011, 18:33
neopa 2 Array verbinden
Keine neuen Beiträge Excel Formeln: Array, Index, Vergleich, KGrösste bei gleich großen Werten 6 Gast 1415 28. Feb 2011, 17:10
Smartie256 Array, Index, Vergleich, KGrösste bei gleich großen Werten
Keine neuen Beiträge Excel Formeln: Table Array bei der Funktion SVERWEIS() variabel gestalten 3 Goregoyle 799 01. März 2010, 18:27
Goregoyle Table Array bei der Funktion SVERWEIS() variabel gestalten
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme