Chyba nie każdy (szczególnie początkujący) programista zdaje sobie sprawę z faktu, że elementy każdej z kolekcji ułożone są w określonym porządku. Często porządek ten nie ma znaczenia dla zadania jakie realizujemy, w innych sytuacjach wiedza ta może wpłynąć na prawidłowość wykonania operacji lub szybkość jej wykonania. Poniżej kilka przykładów, informacji i ciekawostek dot. tego zagadnienia w odniesieniu do aplikacji Excel i Word, gdzie każdy z przykładów zostanie przedstawiony w zapisie pętli For Each.
1. Skoroszyty:
2 | For Each WB In Application.Workbooks |
pętla wykonywać się będzie w kolejności w jakiej skoroszyty były otwarte lub utworzone.
2. Arkusze
2 | For Each SH In ActiveWorkbook.WorkSheets |
pętla wykona się w kolejności od lewego do prawego arkusza. Nie ma znaczenia czy arkusz jest ukryty czy nie.
3. Komórki Cells
2 | For Each Cell In Selection.Cells |
pętla zostanie wykonana w porządku w jakim piszemy i czytamy, od lewej do prawej, od górnego wiersza w dół zaznaczenia.
4. Komentarze w arkuszu Excel
2 | For Each KOM In ActiveSheet.Comments |
o kolejności decyduje adres komórki, w której znajduje się komentarz, a następnie kolejność tej komórki w obszarze arkusza zgodnie z zasadami opisanymi dla komórek Cells w punkcie 3 powyżej.
5. Komentarze w dokumencie Word
2 | For Each KOM In ActiveDocument |
pętla zostanie wykonana w kolejności występowania komentarzy w dokumencie, od początku dokumentu (od pierwszego komentarza) do końca (do ostatniego komentarza).
6. Zakładki w dokumencie Word. W tym przypadku dostępne są dwa warianty:
2 | For Each BM In ActiveDocument.Bookmarks |
zakładki zostaną ułożone w kolejności ... alfabetycznej, wg nazw zakładek.
2 | For Each BM In ActiveDocument.Content.Bookmarks |
w tym przypadku zakładki zostaną ułożone w kolejności występowania w dokumencie.
7. Kształty Shape w Excelu
2 | For Each SH In ActiveSheet.Shapes |
o kolejności decyduje parametr ZOrderPosition, a więc ułożenie względem osi Z arkusza. Pierwszym kształtem będzie ten `najbliżej obszaru komórek`, ostatni to ten `najbliżej nas.`
Oczywiście każda z kolekcji posiada swoją własną kolejność. Powyższe wybrane przykłady mają na celu zwrócenie uwagi na ten aspekt. Dla innych obiektów warto przeprowadzić swoje własne próby.