• ベストアンサー

フォームで「年(西暦)」を今年の「年」から降順に生成したい

ASPでフォームで「年」の選択をさせようとしています。 年はシステム日付からとって、リストの値は現在の年から15年前の年までを自動生成しようと考えています。 そこで以下のように記述したのですが、今年の年がリストの最下部に来てしまいます。 逆に、今年の年を最上部にもってくる方法はないでしょうか? <select name="year" class="textbox" ID="yearid"> <% i = FormatNumber(Year(now)) For value = i-15 to i IF value = Year(now) Then Response.Write "<option selected>" & value & "</option><br>" Else Response.Write "<option>" & value & "</option><br>" End IF Next %> </select>

質問者が選んだベストアンサー

  • ベストアンサー
  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

ごめんなさい、4行目のコピペエラーです。 正しい4行目は以下の通です。 For value = i to i-15 step -1

akif1980
質問者

お礼

ありがとうございます。参考にさせていただき、うまく動きました!

その他の回答 (2)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

もっとシンプルに考えて作っていけばいいのではないでしょうか? まずはノーマルにHTMLを書いてみて、それをASPで出力するにはどのような順序で出力するのが望ましいか考えてみてください。 <% '現在の年を取得 y = Year(Now()) '今年を選択された状態で出力 Response.Write "<option selected>" & y & "</option><br>" '今年からiを引いた年を出力(i = 1~15) For i = 1 To 15 Response.Write "<option>" & (y - i) & "</option><br>" Next %>

akif1980
質問者

お礼

参考になりました。 確かに、前の方のアドバイスよりシンプルです。 ありがとうございました。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

4行目だけ変更すればいいと思います。 For value = i-15 to i to i-15 step -1 因みに step -1 は1つづつvalueが減る事を意味します。 これを省略すると+1になります。