Olá,
O amigo José está quase certo sobre o Select Case em expressões complexas. ao contrário do que ele disse, o Select Case pode tratar expressões complexas como a que ele descreveu e outras ainda mais complicadas ainda. Mas veja, Select Case não é uma instrução de verificação nativa do processador, por isso ela tem que ser "convertida" internamente pelo compilador (ou interpretador, dependendo do modo de compilação selecionado) em um conjunto mais complexo de IF...Then...Else, por esse motivo, ele sempre será mais lento que o IF tradicional. O IIf ainda é pior, pois ele trabalha, como o amigo José disse como um avaliador ternaário que tem mais passos para ser executado internamente.
Agora, veja que nem sempre você precisa se preocupar com o desempenho de um programa quando usa o Select Case ou o IIF, pois em geral as expressões usadas são simples e por isso tratados de foma razoavelmente simples. Preocupe-se apenas se está desenvolvendo aplicações multicamadas ou para a internet, ou ainda, programas que tenham que responder muito rápido a infomações externas (controle de processos, por exemplo). Nesses casos, você deve utilizar sempre que possível (sem dificultar muito a legibilidade do código) instruções If...Then...Else, e para melhorar ainda mais o desempenho, teste sempre os valores falsos: If X <> 10 Then...., pois o processador trabalha mais rapidamente testando falores negativos que positivos (estranho não acha, mas é assim mesmo)
Um abraço,
Sandro.