Excel VB Array

Excel VB Array
Excel VB Array

Excel VB Array

Du möchtest mit dem Excel VB Array arbeiten und lernen, bzw. verstehen wie das Array funktioniert?

Dann lege jetzt in meinem heutigen Beitrag los und wende das Array anschließend erfolgreich in Excel VB an!

Vielleicht hast Du auch noch an anderen Beiträgen Interesse: Email senden, Tastendruck simulieren, Select Case.

Dieser Weg.. zum Array

Ein Array ist erstmals vielleicht nicht der vorherrschende Sinnesgedanke, wenn man tatsächlich das erste Mal auf Diese stolpert.

Ich denke, dass es einfach nur eine Weiterentwicklung aus Not heraus ist, weil man an die Grenzen der bisherigen Werkzeuge gestoßen ist.

Sobald man versteht, dass Variablen nur einen Wert speichern können, wird man durch Suchen wie: „Mehrere Strings zwischenspeichern“, „Integer durchlaufen“, etc. irgendwann auf Arrays stoßen.

Multiple Zahlenwerte speichern – Excel VB Array

Stellen wir uns an dieser Stelle mal eine gute alte Lottospiel Runde vor.

Ich empfinde es so für unser Beispiel wesentlich einfacher, da man sich so etwas Konkretes vorstellen und damit besser arbeiten kann.

Bei unserem kleinen Lotto-Versuch dachte ich an das einfache Super 6„-Spiel, wo wir den Nutzer 6 Zahlen zwischen 1 und 9 aussuchen lassen.

Karte ziehen

Bevor wir mit unserer kleinen Partie beginnen können, müssen wir überlegen, wie der Nutzer eine Zahl wählen kann und wie wir Diese dann in ein Array bekommen.

Ich denke hier würde sich eine InputBox mit „Ja/Nein“ durchaus anbieten, daher verwenden wir Diese.

Dim number
number = InputBox("Enter your number please!")

Da wir nun eine Zahl der 6 Zahlen für unser Lotto erhalten haben, wäre vermutlich der nächste Gedanke, wie man die Nummer nun in ein Array speichert.

6 Zahlen, ein Array – Excel VB Array

Im obigen, Beispiel konntest Du sehen, wie Du eine Zahl für unser Lottospiel in eine Variable legen kannst.

Eine Variable ist im ersten Sinne dazu da, einen Wert zu speichern, mehr kann Sie auch nicht aufnehmen.

Auch wenn Dieser Wert z. B. ein Objekt einer eigenen Klasse ist passt in eine Variable nur Eines davon.

Oft hat man als Neuling ein Problem, wenn man das erste Mal statt eines Datenelements, Mehrere zwischenspeichern soll.

Für gewöhnlich hat man am Anfang seine Probleme damit, mehrere Daten speichern zu müssen, oder zu wollen.

Nun ist der beste Zeitpunkt die Excel VB Arrays ins – im wahrsten Sinne des Wortes – Spiel kommen zu lassen.

So nicht!

Beim Arbeiten mit Quellcode und den dort auftretenden Problemen kommt man immer wieder zur Recherche nach diversen Themen.

Aller Probleme nach gibt es auch sehr viele nicht so prickelnde Beispiele, ich denke das Folgende dürfte für unser Beispiel passen:

Dim number1 As Integer
Dim number2 As Integer
Dim number3 As Integer
Dim number4 As Integer
Dim number5 As Integer
Dim number6 As Integer

Sehr oft habe ich diese blöde Variante bei den verschiedensten „Programmierern“ im Quellcode gefunden, natürlich speziell bei Grünschnäbeln #nooffense!

Auch wenn man diese Herangehensweise natürlich häufiger bei noch nicht so erfahrenen Entwicklern sieht, habe ich es auch schon bei Fortgeschrittenen gesehen.

Dieser Stil wird häufig wegen der augenscheinlichen Einfachheit, statt passender Datentypen verwendet.

Ich denke das hauptsächliche Problem wird Dir bewusst, wenn ich Dich bitten würde, die Variablen zu durchlaufen, denn so ist das schwierig.

Warum ein Etui statt eines Kartons? – Excel VB Array

Wieso sollte man eine Lottokugel in ein einzelnes Etui stecken, wenn alle Kugeln direkt in einem kleinen Karton gemeinsam untergebracht werden könnten?

Der Karton dient hier als Analogie zum Excel VB Array, wo man eben mehrere Elemente hineinspeichern kann.

Als nächstes zeige ich, wie Du ein Array deklarieren, bzw. initialisieren und danach verwenden könntest.

Zahlen in Array speichern – Excel VB Array

Hier zeige ich Dir, wie das Array erstellst und danach mit den Lottozahlen bestücken kannst.

Denke immer daran, dass die Arrays in der Programmierung generell bei 0 zu zählen anfangen.

Deklaration

Ohne Fassungsvermögen

Dim numbers()

Mit Fassungsvermögen

Hier ist ein Beispiel einer Deklaration mit festgelegtem Fassungsvermögen:

Dim numbers(3)

Initialisierung

Neben den hier drüber gezeigten Deklarationen, kannst Du mit den folgenden Zeilen ein Array initialisieren, sprich direkt mit Werten bestücken.

Dim numbers
numbers= Array(3, 7, 4)

Direkter Zugriff auf Elemente

Hier greifen wir händisch, bzw. manuell auf das jeweilige Element zu, indem wir den Index direkt angeben:

Dim numbers(2)
numbers(0) = 5
numbers(1) = 9
numbers(2) = 3

Jede Zahl mit Schleife durchlaufen

Nun gehen wir jeden einzelnen Index unseres Excel VB Array mit einer Schleife durch und können die einzelnen Werte setzen:

For i = LBound(numbers) To UBound(numbers)
    numbers(i) = ' a value!
Next

Zahlen nachträglich hinzufügen – Excel VB Array

Auch wenn wir in unserem „Super 6“-Lottospiel die genaue Anzahl an Zahlen kennen, muss man vermutlich irgendwann weitere Elemente hinzufügen.

Dazu können wir das ReDim-Statement zusammen mit dem Preserve-Schlüsselwort nutzen.

Damit wir die Größe des Arrays zu neu festegelegt und die bisherigen Daten darin erhalten.

Dim numbers
numbers = Array(3, 5)
ReDim Preserve numbers(2)
numbers(2) = 7

Nach Ausführung befinden sich die Zahlen 3, 5 und 7 im Array.

Das Lottobeispiel selbst

In diesem Abschnitt fragen wir den Nutzer einfach nach 6 Zahlen und sammeln Diese im Excel VB Array.

Dim numbers
numbers = Array()
Dim number
Dim newBounds
For i = 1 To 6
    newBounds = UBound(numbers) + 1
    ReDim Preserve numbers(newBounds)
    number = CInt(InputBox("Please provide number " & i))
    numbers(newBounds) = number
Next

Danach könnte man noch hingehen und eine Überprüfung einbauen, ob der Nutzer die Zahlen tatsächlich erraten hat, aber das überlasse ich dann Dir 😉!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert