数字の並べ替え への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 るきお  (社会人)
投稿日時
2011/12/13 20:39:11
YuOさんが書かれているようにTextプロパティは文字列型なので
普通に比較すると国語辞書の掲載順で考えた場合に前か後かという判断になります。
国語辞書に載るとしたら「10」は「3」の前ですよね。
数値として比較するには自分でいったん数値に変換する必要があります。
その方法はさまざまですが、たとえばCInt関数を使った例を書いてみました。
普通に比較すると国語辞書の掲載順で考えた場合に前か後かという判断になります。
国語辞書に載るとしたら「10」は「3」の前ですよね。
数値として比較するには自分でいったん数値に変換する必要があります。
その方法はさまざまですが、たとえばCInt関数を使った例を書いてみました。
Dim i As Integer
Dim j As Integer
Dim sort As Integer
For i = 1 To 5
For j = i + 1 To 6
If CInt(Me.Controls("TextBox" & i).Text) > CInt(Me.Controls("TextBox" & j).Text) Then
sort = Me.Controls("TextBox" & i).Text
Me.Controls("TextBox" & i).Text = Me.Controls("TextBox" & j).Text
Me.Controls("TextBox" & j).Text = sort
End If
Next
Next
投稿者 YuO  (社会人)
投稿日時
2011/12/13 15:38:05
TextプロパティはSystem.String型,つまりは文字列型です。
"1"と"10"と"2"では,"1"c < "2"cなので,"1"と"10"は"2"より前に来ます。
数値として並べたいのであれば,数値として比較する必要があります。
必ず数字だけからなる,という前提をおいてよければ,
Int32.Parse (or Integer.Parse)を使ってInteger型にして比較することで,10 > 2とすることができます。
"1"と"10"と"2"では,"1"c < "2"cなので,"1"と"10"は"2"より前に来ます。
数値として並べたいのであれば,数値として比較する必要があります。
必ず数字だけからなる,という前提をおいてよければ,
Int32.Parse (or Integer.Parse)を使ってInteger型にして比較することで,10 > 2とすることができます。
投稿者 定年爺さん  (社会人)
投稿日時
2011/12/13 15:16:55
定年になり始め始めました素人です。この掲示板で見つけたのですが機能しません。
TextBoxの数字を並べ替えたいのです。
5,1,10,6,12,3,
これをSortすると
1,10,12,3,5,6
となります。
1,3,5,6,10,12
としたいのです。 よろしくご指導ください。
VB2010を使用しています。
Dim i As Integer
Dim j As Integer
Dim sort As Integer
For i = 1 To 5
For j = i + 1 To 6
If Me.Controls("TextBox" & i).Text > Me.Controls("TextBox" & j).Text Then
sort = Me.Controls("TextBox" & i).Text
Me.Controls("TextBox" & i).Text = Me.Controls("TextBox" & j).Text
Me.Controls("TextBox" & j).Text = sort
End If
Next
Next
TextBoxの数字を並べ替えたいのです。
5,1,10,6,12,3,
これをSortすると
1,10,12,3,5,6
となります。
1,3,5,6,10,12
としたいのです。 よろしくご指導ください。
VB2010を使用しています。
Dim i As Integer
Dim j As Integer
Dim sort As Integer
For i = 1 To 5
For j = i + 1 To 6
If Me.Controls("TextBox" & i).Text > Me.Controls("TextBox" & j).Text Then
sort = Me.Controls("TextBox" & i).Text
Me.Controls("TextBox" & i).Text = Me.Controls("TextBox" & j).Text
Me.Controls("TextBox" & j).Text = sort
End If
Next
Next
るきおさんのを使わせていただきました。
始めたばかりで内容がわかりませんが時間はありますので少しずつ勉強します。
今後よろしくお願いいたします。