■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#28180-0超初心者です 教えてください T△Tきゃべつ太郎2002-04-11(木) 20:23
     #28181-0RE#28180:超初心者です 教えてください T△Tせつら2002-04-11(木) 20:43
     #28182-0RE#28180:超初心者です 教えてください T△T高架の藤2002-04-11(木) 20:54
     #28184-0RE#28181:超初心者です 教えてください T△Tきゃべつ太郎2002-04-11(木) 21:27
     #28185-0RE#28182:超初心者です 教えてください T△Tきゃべつ2002-04-11(木) 21:32
     #28187-0RE#28180:超初心者です 教えてください T△T(しげ)2002-04-11(木) 21:58
     #28190-0RE#28187:超初心者です 教えてください T△Tきゃべつ太郎2002-04-11(木) 22:37
#28180-0
超初心者です 教えてください T△T
今5個の数字を並び替えるソート処理をやっているのですが、If文がうまく作れません。T△T TextBoxを
使ってやらないといけないので、どなたかご存知の方がいましたらご指導よろしくお願いいたします。
#28181-0
RE#28180:超初心者です 教えてください T△T
宿題ですか? 題名が不正ですし、前提条件がよく判らないので、答えようがないですよ。

普通は Sorted プロパティを True にした ListBox なんぞ使います。 もし学校でソートロジック
を習ったのなら、それを使って自分で作ってください。 TextBox とソートの間に、どういう関係が
あるのか、さっぱりですから。
#28182-0
RE#28180:超初心者です 教えてください T△T
> 今5個の数字を並び替えるソート処理をやっているのですが、If文がうまく作れません。T△T TextBoxを
> 使ってやらないといけないので
「5つのテキストボックスに設定された数値をソートして設定しなおす」なんでしょうか?

「If文」ですか?

    If CLng(Me.Text1.Text) > CLng(Me.Text2.Text) Then swap = Me.Text1.Text: Me.Text1.Text = Me.Text2.Text: Me.Text2.Text = swap

とか。
#28184-0
RE#28181:超初心者です 教えてください T△T
> 宿題ですか? 題名が不正ですし、前提条件がよく判らないので、答えようがないですよ。
> 
> 普通は Sorted プロパティを True にした ListBox なんぞ使います。 もし学校でソー
トロジック を習ったのなら、それを使って自分で作ってください。 TextBox とソートの間
に、どういう関係があるのか、さっぱりですから。

わかりづらくてどうもすみません。フォームの中にテキストボックスを上の方に5個並べ下の
ほうに5個並べコマンドボタンをクリックしたら上のテキストボックスにランダムに入れた数
字が下のテキストボックスに小さい順に並び変わるというものです。すみませんでした。
#28185-0
RE#28182:超初心者です 教えてください T△T
> > 今5個の数字を並び替えるソート処理をやっているのですが、If文がうまく作れません。T△T TextBoxを
> > 使ってやらないといけないので
> 「5つのテキストボックスに設定された数値をソートして設定しなおす」なんでしょうか?
> 
> 「If文」ですか?
> 
>     If CLng(Me.Text1.Text) > CLng(Me.Text2.Text) Then swap = Me.Text1.Text: Me.Text1.Text = Me.Text2.Text: Me.Text2.Text = swap 
> とか。
わかりづらい投稿にお答え頂きありがとうございました。
#28187-0
RE#28180:超初心者です 教えてください T△T
> 今5個の数字を並び替えるソート処理をやっているのですが、If文がうまく作れません。T△T TextBoxを
> 使ってやらないといけないので、どなたかご存知の方がいましたらご指導よろしくお願いいたします。


フォームにテキストボックスを5個 Text1(0)、Text1(1)、Text1(2)、Text1(3)、Text1(4)
とコマンドボタン Command1
を配置して以下のコードで実行してみてください。


Option Explicit

Private Sub Command1_Click()
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim t(5) As Long
    Dim st(5) As Long
    Dim et(5) As Long
    Dim v(5) As Double

    If Command1.Caption = "Start" Then
        For i = 0 To 4
            For j = 0 To i - 1
                If Val(Text1(t(j)).Text) > Val(Text1(i).Text) Then
                    For k = 3 To j Step -1
                        t(k + 1) = t(k)
                    Next
                    Exit For
                End If
            Next j
            t(j) = i
        Next i

        For i = 0 To 4
            st(i) = Text1(i).Top
            For j = 0 To 4
                If i = t(j) Then
                    et(i) = Text1(j).Top
                    Exit For
                End If
            Next
            v(i) = (et(i) - st(i)) / 1000
        Next

        For j = 1 To 1000
            For i = 0 To 4
                If Text1(i).Top <> et(i) Then
                    Text1(i).Top = Text1(i).Top + v(i)
                End If
            Next
            Refresh
        Next

        Command1.Caption = "Reset"
    Else
        Call Form_Load
    End If
End Sub

Private Sub Form_Load()
    Dim i As Long

    Me.ScaleMode = 3

    For i = 0 To 4
        Text1(i).Text = ""
        Text1(i).Left = Text1(0).Left
    Next i
    Text1(0).Top = 1
    For i = 1 To 4
        Text1(i).Top = Text1(i - 1).Top + Text1(i - 1).Height + 1
    Next i
    Command1.Caption = "Start"
End Sub
#28190-0
RE#28187:超初心者です 教えてください T△T
> > 今5個の数字を並び替えるソート処理をやっているのですが、If文がうまく作れません。T△T TextBoxを
> > 使ってやらないといけないので、どなたかご存知の方がいましたらご指導よろしくお願いいたします。
> 
> 
> フォームにテキストボックスを5個 Text1(0)、Text1(1)、Text1(2)、Text1(3)、Text1(4)
> とコマンドボタン Command1
> を配置して以下のコードで実行してみてください。
> 
> 
> Option Explicit
> 
> Private Sub Command1_Click()
>     Dim i As Long
>     Dim j As Long
>     Dim k As Long
>     Dim t(5) As Long
>     Dim st(5) As Long
>     Dim et(5) As Long
>     Dim v(5) As Double
> 
>     If Command1.Caption = "Start" Then
>         For i = 0 To 4
>             For j = 0 To i - 1
>                 If Val(Text1(t(j)).Text) > Val(Text1(i).Text) Then
>                     For k = 3 To j Step -1
>                         t(k + 1) = t(k)
>                     Next
>                     Exit For
>                 End If
>             Next j
>             t(j) = i
>         Next i
> 
>         For i = 0 To 4
>             st(i) = Text1(i).Top
>             For j = 0 To 4
>                 If i = t(j) Then
>                     et(i) = Text1(j).Top
>                     Exit For
>                 End If
>             Next
>             v(i) = (et(i) - st(i)) / 1000
>         Next
> 
>         For j = 1 To 1000
>             For i = 0 To 4
>                 If Text1(i).Top <> et(i) Then
>                     Text1(i).Top = Text1(i).Top + v(i)
>                 End If
>             Next
>             Refresh
>         Next
> 
>         Command1.Caption = "Reset"
>     Else
>         Call Form_Load
>     End If
> End Sub
> 
> Private Sub Form_Load()
>     Dim i As Long
> 
>     Me.ScaleMode = 3
> 
>     For i = 0 To 4
>         Text1(i).Text = ""
>         Text1(i).Left = Text1(0).Left
>     Next i
>     Text1(0).Top = 1
>     For i = 1 To 4
>         Text1(i).Top = Text1(i - 1).Top + Text1(i - 1).Height + 1
>     Next i
>     Command1.Caption = "Start"
> End Sub
こんなすごいものを作っていただき本当にありがとうございます。For__Nextも必要なんですね。
勉強になりました。ほんとにありがとうございました。
このページと関連する記事:
#19684-0重複と乱数2002-02-05(火) 17:23
#1093-0このプログラムは何?1999-08-29(日) 14:29
#397-0エラーの原因がよくわからない1999-07-28(水) 11:31
#1739-0データ型について1999-09-11(土) 13:29
#2770-3テキストの文字の検査2002-09-06(金) 02:07
#20313-0ツールボックスに多角線コントロールの追加できませんか2002-03-20(水) 00:05
#402-4リストボックスにデータを表示させたい2003-08-18(月) 14:04
#10304-0テキストボックスへの表示2000-08-06(日) 23:17
#22987-0For文について2001-09-06(木) 13:47
#24142-0自動的に増える配列2001-10-29(月) 03:25
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)