テキストボックスに計算結果を書き込むには?

解決


たけのこ  2002-04-28 13:21:25  No: 104209  IP: [192.*.*.*]

超初心者(まだVB2日目)です。
単純なことかもしれませんが教えてください。
dim a as long
    dim i as long

    a = 0
    for i = 1 to 10 a = a + i
    next
のようなプログラムを作って1〜10までの数値を加算していって、その計算結果を1回づつ「1,2,3・・・10」のようにテキストボックスに表示させるにわどうしたらいいかわかりません 。

dim a as long
    dim i as long

    a = 0
    for i = 1 to 10 a = a + i
    texe1=a
    next
みたいにしてもにしても最後の結果しか書き込まれません。教えてください。

編集 削除
TEA  2002-04-28 16:45:58  No: 104210  IP: [192.*.*.*]

気になる点はいくつかありますが、原因は「テキストボックスには
計算結果がちゃんと書き込まれているのに、最後の結果しか書きこまれて
いないように見える。」ということでしょうか?
計算途中も出したいのなら、

>texe1=a
texe1 = texe1 & "," & a   

に変更すれば良いと思います。
それと、For文の後ろで改行が抜けていて、計算式がくっついてます。

編集 削除
TEA  2002-04-28 16:55:15  No: 104211  IP: [192.*.*.*]

↑の発言で、「原因は」→「問題は」の間違いでした。

編集 削除
たけのこ  2002-04-28 18:39:50  No: 104212  IP: [192.*.*.*]

TEAさんごめんなさい。やってみたけど解決しません。
Dim a As Long
    Dim i As Long
      a = 0
       For i = 1 To 10
         a = a + 1
       Text1 = texe1 & "," & a
    Next
にしたんですが「,10」しか表示されません。
Text1 = texe1 & "," & aをPrint aにかえるとformに1 2 3 ・・・10とでてくるんでそんなかんじにしたいんですができません。
教えてください。
>For文の後ろで改行が抜けていて、計算式がくっついてます。
おちょこちょいですみません打ち間違えです^^;

編集 削除
たかみちえ  URL  2002-04-28 23:59:57  No: 104213  IP: [192.*.*.*]

なんだかスペルのまちがいがあるようですけど、
実際のコードのほうはだいじょうぶなんでしょうか…?
Text1 = texe1
こういうミスを防ぐために、変数には必ず大文字を入れておくといいと、
いろんなところに書いてありますね。
(VBのエディタが自動的になおしてくれるから)

  ところで、Text1(テキストボックス?)をループで書き換えてると、いちいち無駄な部分が出てきます。
(Text1は、テキストが変わるたびに画面を書き換えようとするので、
そのぶんWindowsに負担がかかります。ほんの少しだけ)
変数にいったん全部コピーしたあと、Text1に移すのがいいと思います。

編集 削除
たかみちえ  URL  2002-04-29 00:02:13  No: 104214  IP: [192.*.*.*]

あ、Printでやろうとすると、毎回出力位置が、
勝手に下にずれていくので気をつけてください。
TextWidthとTextHeightからいろいろ計算して、おまけをつければうまくいきます。
(おまけって言うのは、行間とか…^^;)

編集 削除
TEA  2002-04-29 02:57:41  No: 104215  IP: [192.*.*.*]

私なら、こんな感じで書きます。
テキストボックスコントロールの名前を「txtPrint」というように、
コントロールの名前、変数の名前をわかりやすい名前にして、
頭に「型」をつける方が読みやすいです。

Dim lngNumber As Long                   'Long型の Number
Dim strOutput As String                 'String型の Output
  strOutput=""                          '結果を入れる変数を初期化
  For lngNumber = 1 To 10
    strOutput = strOutput & "," & str(lngNumber)  '数値を文字に直して
  Next                                            '合成する 
  txtPrint.text = strOutput        '結果をテキストボックスのテキスト
                                   'プロパティに出力する
------------------------------------------------------------------
さらに、この関数(またはサブルーチン)を実行するタイミングも大切ですね。
たとえば、コマンドボタンを押したときに処理するようにすれば良いと思います。

編集 削除
たけのこ  2002-04-29 12:21:47  No: 104216  IP: [192.*.*.*]

皆さんいろいろとありがとうございました^^
皆さんのおかげで解決することができたしいろいろとべんきょうになりました。
ほんとありがとうございます。

編集 削除