textboxの数字を小さい順に並び替える への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 ニニス  (学生)
投稿日時
2012/1/11 14:06:02
visual basicを使うのはこれで10回目くらいでまだまだ初心者でわからないことばかりなので、細かく教えてください。
10個のテキストボックスに適当な数字(-10000~10000)を小さい順に並び替えて表示したいのですが、まったくやり方がわかりません。
↓こんな感じでやっていますがうまくいきません。
Private Sub Command1_Click()
Dim n(10) As Integer
a = Text1.Text
b = Text2.Text
c = Text3.Text
d = Text4.Text
e = Text5.Text
f = Text6.Text
g = Text7.Text
h = Text8.Text
i = Text9.Text
j = Text10.Text
n(1) = Val(a)
n(2) = Val(b)
n(3) = Val(c)
n(4) = Val(d)
n(5) = Val(e)
n(6) = Val(f)
n(7) = Val(g)
n(8) = Val(h)
n(9) = Val(i)
n(10) = Val(j)
nmin = 10001
For i = 1 To 9
For j = i + 1 To 10
If j < nmin Then
j = nmin
End If
Next j
Next i
Form1.Print j
End Sub
10個のテキストボックスに適当な数字(-10000~10000)を小さい順に並び替えて表示したいのですが、まったくやり方がわかりません。
↓こんな感じでやっていますがうまくいきません。
Private Sub Command1_Click()
Dim n(10) As Integer
a = Text1.Text
b = Text2.Text
c = Text3.Text
d = Text4.Text
e = Text5.Text
f = Text6.Text
g = Text7.Text
h = Text8.Text
i = Text9.Text
j = Text10.Text
n(1) = Val(a)
n(2) = Val(b)
n(3) = Val(c)
n(4) = Val(d)
n(5) = Val(e)
n(6) = Val(f)
n(7) = Val(g)
n(8) = Val(h)
n(9) = Val(i)
n(10) = Val(j)
nmin = 10001
For i = 1 To 9
For j = i + 1 To 10
If j < nmin Then
j = nmin
End If
Next j
Next i
Form1.Print j
End Sub
なぜ初心者がVB6を使用されているか少し気になったところでもありますが・・・
この機会にVB2010へアップグレードされてはいかがでしょうか。
Visual Basic 2010 Express インストールの手引き
http://homepage1.nifty.com/rucio/main/material/VB2010Install.htm
調べたところ、VB6にはソートという機能はないみたいです。
VB6での配列のSortの使い方
http://oshiete.goo.ne.jp/qa/4348522.html
VBでソート
http://www.geocities.co.jp/SilkRoad/4511/vb/sort.htm
また、ソートはどの言語にも共通していることなので、他の言語もできるのであれば、その資料も参考にされるといいかと。
VB2010の場合は、List(Of T)コレクションか、なんらかのコレクションに追加して、ソートしてみるのもいいと思います。
List(Of T).Sortメソッド
http://msdn.microsoft.com/ja-jp/library/b0zbh7b6.aspx
まぁでも質問を見る限り、学習目的でされていると思うので一回ソートを自分の手でコーティングされた方がいいとおもいます。