Du musst einen Zeiger auf das erste Element des Arrays übergeben, da Du ja auf das Originalarray zugreifen willst. Das geht mit ByRef, der Standardeinstellung für die Übergabe von Variablen an Sub's und Functions.
Wenn Du ByVal übergibst, dann erzeugst Du eine Kopie des ersten Elementes und liest dann bei Index 2 irgendwas anderes im Speicher.