Bueno, puedes hacerlo funcionar como tu lo piensas, pero me parece un poco raro el manejo que le quieres dar a esto, el consejo es bueno, utiliza una DB, pues te ahorrarás muchas líneas de código innecesarias, ahora, segun veo, dependiendo de una variable, estás dimensionando otras, las cuales pretendes imprimir, pero en realidad mediante el uso de opcion(a) estás trantando de imprimir los índices de un arreglo, que no existe...
Para hacer lo que tu pretendes, aunque repito, que no se me hace la mejor solución, puedes valerte del uso de la función eval("variable_como_string"), que básicamente al pasarle un string con el nombre de la variable en cuestión, buscará el valor de dicha variable, para lo cual puedes hacer mediente tu for lo siguiente:
Código:
<select name="opcion" size="." id="opcion">
<%
for a = 1 to numproductos
%>
<option value="<%=eval("opcion" & a)%>"><%=eval("opcion" & a)%></option>
<%
next
%> </select>
Salu2,