Visual Basic-Makrobeispiele zum Arbeiten mit Arrays

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
291069 Visual Basic macro examples for working with arrays
In Artikel 213798 wird dieses Thema für Microsoft Excel 2000 behandelt.

In Artikel 149689 wird dieses Thema für Microsoft Excel 98 und frühere Excel-Versionen behandelt.

Zusammenfassung

Der vorliegende Artikel nennt Beispielprozeduren in Microsoft Visual Basic für Applikationen, mit deren Hilfe Sie verschiedene Arten von Arrays bearbeiten können.

Weitere Informationen

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Spezialisten von Microsoft Product Support Services können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind. Hinweis: In Prozeduren von Visual Basic für Applikationen sind die Wörter nach dem Apostroph (') Kommentare.

Füllen eines Arrays und anschließendes Kopieren in ein Arbeitsblatt

  1. Öffnen Sie eine neue Arbeitsmappe, und fügen Sie ein Visual Basic-Modulblatt ein.
  2. Geben Sie im Modulblatt den folgenden Code ein:
    Sub Sheet_Fill_Array()
    Dim myarray As Variant
    myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    Range("a1:a10").Value = Application.Transpose(myarray)
    End Sub
  3. Wählen Sie "Tabelle1" aus.
  4. Zeigen Sie im Menü Extras auf Makro, und klicken Sie auf Makros.
  5. Klicken Sie im Dialogfeld Makro auf Sheet_Fill_Array, und klicken Sie anschließend auf Ausführen.

Übernehmen von Werten aus einem Arbeitsblatt und Füllen des Arrays

  1. Geben Sie die Werte in "Tabelle1" in die Zellen A1:A10 ein.
  2. Geben Sie in einem Visual Basic-Modulblatt den folgenden Code ein:
    Sub from_sheet_make_array()
    Dim thisarray As Variant
    thisarray = Range("a1:a10").Value

    counter = 1 'looping structure to look at array
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter, 1)
    counter = counter + 1
    Wend
    End Sub
  3. Wählen Sie "Tabelle1" aus.
  4. Zeigen Sie im Menü Extras auf Makro, und klicken Sie auf Makros.
  5. Klicken Sie im Dialogfeld Makro auf from_sheet_make_array, und klicken Sie anschließend auf Ausführen.

Übergeben und Empfangen eines Arrays

  1. Geben Sie auf der Modulseite den folgenden Code ein:
    Sub pass_array()
    Dim thisarray As Variant
    thisarray = Selection.Value
    receive_array (thisarray)
    End Sub

    Sub receive_array(thisarray)
    counter = 1
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter, 1)
    counter = counter + 1
    Wend
    End Sub
  2. Wählen Sie "Tabelle1" aus, und markieren Sie den Bereich A1:A10.
  3. Zeigen Sie im Menü Extras auf Makro, und klicken Sie auf Makros.
  4. Klicken Sie im Dialogfeld Makro auf pass_array, und klicken Sie anschließend auf Ausführen.

Vergleichen zweier Arrays

  1. Erstellen Sie zwei benannte Bereiche in "Tabelle1". Nennen Sie den einen Bereich range1 (Bereich1) und den anderen range2 (Bereich2).

    Markieren Sie beispielsweise den Zellbereich A1:A10, und benennen Sie ihn "range1". Markieren Sie den Zellbereich B1:B10, und benennen Sie ihn "range2".
  2. Geben Sie im Modulblatt den folgenden Code ein:
    Sub compare_two_array()
    Dim thisarray As Variant
    Dim thatarray As Variant

    thisarray = Range("range1").Value
    thatarray = Range("range2").Value
    counter = 1
    While counter <= UBound(thisarray)
    x = thisarray(counter, 1)
    y = thatarray(counter, 1)
    If x = y Then
    MsgBox "yes"
    Else MsgBox "no"
    End If
    counter = counter + 1
    Wend
    End Sub
  3. Wählen Sie "Tabelle2" aus.
  4. Zeigen Sie im Menü Extras auf Makro, und klicken Sie auf Makros.
  5. Klicken Sie im Dialogfeld Makro auf compare_two_array, und klicken Sie anschließend auf Ausführen.

    Für jeden Vergleich wird ein Meldungsfeld angezeigt.

Füllen eines dynamischen Arrays

  1. Geben Sie auf der Modulseite den folgenden Code ein:
    Sub fill_array()

    Dim thisarray As Variant
    number_of_elements = 3 'number of elements in the array

    'must redim below to set size
    ReDim thisarray(1 To number_of_elements) As Integer
    'resizes this size of the array
    counter = 1
    fillmeup = 7
    For counter = 1 To number_of_elements
    thisarray(counter) = fillmeup
    Next counter

    counter = 1 'this loop shows what was filled in
    While counter <= UBound(thisarray)
    MsgBox thisarray(counter)
    counter = counter + 1
    Wend

    End Sub
  2. Zeigen Sie im Menü Extras auf Makro, und klicken Sie auf Makros.
  3. Klicken Sie im Dialogfeld Makro auf fill_array, und klicken Sie anschließend auf Ausführen.
Hinweis: Durch Ändern der Variablen "number_of_elements" wird die Größe des Arrays bestimmt.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 291069 – Letzte Überarbeitung: 31.03.2008 – Revision: 1

Feedback