Les contrôles de type Formulaire (qui étaient utilisés avant Excel 97), appartiennent maintenant à la collection Shapes (qui regroupe tous les objets dessinés d'une feuille). [Noter que les contrôles Microsoft Forms n'appartiennent pas à cette collection: ils appartiennent à la collection Controls lorsqu'ils se trouvent dans un Userform et à la collection OLEObjects lorsqu'ils sont dans une feuille]. Mais avant l'apparition de Shapes, existaient des collections Buttons, ListBoxes, Dropdowns, etc. qui ne sont plus documentées (mais toujours utilisables). Et ces collections sont semble-t-il la seule possibilité d'atteindre certaines propriétés des objets, dont Selected qui permet de savoir si un élément a été sélectionné dans une liste (certaines sont accessibles par Shapes(index ou nom de l'objet).ControlFormat, List par exemple qui est d'ailleurs pour cet objet une méthode, alors que List est une propriété pour un objet Form.ListBox).
C'est à se demander si Microsoft n'a pas réalisé certaines évolutions pour alimenter les discussions dans les forums !
Bref, ListBoxes(1) identifie simplement le premier objet ListBox de la feuille.
Ce qui est quand même vicieux de la part de Microsoft, c'est de laisser ce contrôle utilisable et avec la possibilité d'utiliser la multisélection, sachant qu'on peut récupérer le rang de l'élément sélectionné (valeur de Listindex) par la cellule liée en cas de sélection unique seulement; en cas de sélection multiple, Listindex=0 et la cellule liée aussi, la seul façon de détecter les éléments sélectionnés ne peut se faire que par programmation pour laquelle il n'y a plus aucune référence pour le faire.