- ベストアンサー
EXCELのFor文での数値の逆順表示
- EXCELのFor文を使用して、数値の逆順表示を行いたい場合について教えてください。
- 現在、Kishaku_MinからKishaku_Maxまでの数値を取得するようにしていますが、逆順で取得する方法がわかりません。
- For文では逆順の取得ができないのでしょうか?VBA初心者なので、ご教授いただけると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
For i = Kishaku_Max To Kishaku_Min Step -1 //処理 Next としてください。
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
蛇足な追記。 ANo.2の回答を書いている最中は、まだ誰からも回答が付いていませんでした。 回答を書いている最中、まさか「予想通りのおっちょこちょいな回答者が現れる」とは予想していませんでした。 ですので、ANo.1の回答が「予想通り」だったのは「単なる偶然」であり、他意はありません。もちろん、特定の回答者に対する指摘でもありません。ご了解下さい。
- emsuja
- ベストアンサー率50% (1065/2116)
セルに入れルン数字を下記の式で取得すればいいのでは? Kishaku_Max - i + 1 こんな感じですね Kishaku_Min = 1 Kishaku_Max = 5 For i = Kishaku_Min To Kishaku_Max Cells(2, i).Value = Kishaku_Max - i + 1 Next i
お礼
回答ありがとうございます。 皆さんのおかげでうまく処理することができました。 しかし、こういう系統の質問はレスが早いですねー。 皆様に感謝、感謝です!
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
For i = Kishaku_Min To Kishaku_Max のループの中で、セルに値をセットしている部分はどうなってますか? たぶん ほげほげ.Value = i って書いてますよね? これを ほげほげ.Value = i + 10 にしたら、どうなります? iが1なら11、2なら12、3なら13になりますね? これは、ループする値が1~5でも、値をセットする部分で「iを元に、計算した値」を使えば、1~5以外の値もセットできるって事を意味してます。 では、iが1なら5、2なら4、3なら3、4なら2、5なら1にするには? ほげほげ.Value = 6 - i って書けば良いのです。 なお、おっちょこちょいな回答者が For i = Kishaku_Max To Kishaku_Min Step -1 にすれば良い。 と回答するかも知れませんが、これでは駄目です。 これでは「実行する順序が変わるだけで、5回やり終わった結果は最初と同じ」なので、元のプログラムと結果は一緒です。
お礼
回答ありがとうございます。 おっちょこちょいな回答でうまくいきました。 Kishaku_Maxは5以上の場合もあるし、5以下の場合もあるので、これで行ってみます。
お礼
思い通りの結果が得られました。 ありがとうございます。 まだまだ、修業しないといけませんねー。