超初心者(まだ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
みたいにしてもにしても最後の結果しか書き込まれません。教えてください。
気になる点はいくつかありますが、原因は「テキストボックスには
計算結果がちゃんと書き込まれているのに、最後の結果しか書きこまれて
いないように見える。」ということでしょうか?
計算途中も出したいのなら、
>texe1=a
texe1 = texe1 & "," & a
に変更すれば良いと思います。
それと、For文の後ろで改行が抜けていて、計算式がくっついてます。
↑の発言で、「原因は」→「問題は」の間違いでした。
編集 削除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文の後ろで改行が抜けていて、計算式がくっついてます。
おちょこちょいですみません打ち間違えです^^;
なんだかスペルのまちがいがあるようですけど、
実際のコードのほうはだいじょうぶなんでしょうか…?
Text1 = texe1
こういうミスを防ぐために、変数には必ず大文字を入れておくといいと、
いろんなところに書いてありますね。
(VBのエディタが自動的になおしてくれるから)
ところで、Text1(テキストボックス?)をループで書き換えてると、いちいち無駄な部分が出てきます。
(Text1は、テキストが変わるたびに画面を書き換えようとするので、
そのぶんWindowsに負担がかかります。ほんの少しだけ)
変数にいったん全部コピーしたあと、Text1に移すのがいいと思います。
あ、Printでやろうとすると、毎回出力位置が、
勝手に下にずれていくので気をつけてください。
TextWidthとTextHeightからいろいろ計算して、おまけをつければうまくいきます。
(おまけって言うのは、行間とか…^^;)
私なら、こんな感じで書きます。
テキストボックスコントロールの名前を「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 '結果をテキストボックスのテキスト
'プロパティに出力する
------------------------------------------------------------------
さらに、この関数(またはサブルーチン)を実行するタイミングも大切ですね。
たとえば、コマンドボタンを押したときに処理するようにすれば良いと思います。
皆さんいろいろとありがとうございました^^
皆さんのおかげで解決することができたしいろいろとべんきょうになりました。
ほんとありがとうございます。