|
▼UO3 さん:
>▼ume さん:
>
>こんばんは
>
>最初に最終行を表示するというのは、横に置いて。
>
>まず、現在のコードは表示したとき、データは1件目(つまりシートの2行目)ということですね。
>ですから、シートに、たとえばタイトル行も含めて、1行あれば、データは2行目から11行目までの10件。
>ユーザーフォームが表示されたときの状態は、TextBox1 が 1/10 。そのほかのテキストボックスには1件目
>つまりシートの2行目の値が表示されている。これはいいですね?
はい、いいです
>
>でも、今回アップされたコードでは、TextBox5 は 0/10 になっているはずです。
>
>仕掛けを説明しておきますと、Initializeルーティンで SpinButton1 のMin に 1 をいれていますね。
>元々の値(初期値)は 0 ですから、ここでSupinButton1 「Changeイベント」が発生します。
>で、その値(1)をもって、データ表示が実行されます。
>で、その最初の、TextBox5.Value = x & "/" & レコード数 で TextBox5 は 1/10 になります。
>
>なのに、その後、Initializeルーティンに戻るわけですが、そこで またもや
>TextBox5.Value = x & "/" & レコード数 がありますねぇ??
>Initializeルーティンでは Dim x As Long と宣言していますが、このプロシジャ内では値をセット
>していませんので、 x は 初期値 0 のままです。
>
>結果的に、せっかく 1/10 とセットしたのに、そのあと、 0/10 に強制的に置き換えられています。
>なぜ、こうされたのですか?
ユーザーフォームを開いたときにTextBox5.Value = x & "/" & レコード数を入れないと、テキスト5は空白になってしまうので、わざわざ入れたのですがそこで初期値を0に戻してしまっているのですね・・・気がつきませんでした
>Initializeルーティンの TextBox5.Value = x & "/" & レコード数 は削除してください。
>
>で、表示したときに、最終行のデータを表示させるということなら
>
> With SpinButton1
> .Max = レコード数
> .Min = 1
> End With
>
>これを
>
> With SpinButton1
> .Max = レコード数
> .Value = .Max
> .Min = 1
> End With
>
>こうしてください。
>
>繰り返しますが、Initializeルーティンの TextBox5.Value = x & "/" & レコード数 は削除してくださいね。
はい、上記の記述で完ぺきに動作しております
いつもいつも、教えていただきほんとに感謝です
まだまだ、機能を付けていきますが
また つまずいた時にはご教授よろしくお願いいたします。
|
|