@Mike, the code does work as he intended to move items up and down. The index can be -1 if no item is selected in the Listbox so the presence of it in the conditional is quite valid.
Thanks Andrew, I failed to spot the extra "If"!
Also, after writing my twopen'rth, I thought the code would be OK for a MoveDown, but that the initial test should also exclude listbox1.SelectedIndex = (listbox1.Count-2) otherwise there won't be a following item to exchange with. Am I getting nearer...
I did some similar code for moving items in a Table, somewhat handicapped by there not being an Insert method. I had thought that there, too, there could be no case of an unselected item and a value of "-1", since it is not in the help. Something else to reconsider...
Mike.