|
▼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 に強制的に置き換えられています。
なぜ、こうされたのですか?
Initializeルーティンの TextBox5.Value = x & "/" & レコード数 は削除してください。
で、表示したときに、最終行のデータを表示させるということなら
With SpinButton1
.Max = レコード数
.Min = 1
End With
これを
With SpinButton1
.Max = レコード数
.Value = .Max
.Min = 1
End With
こうしてください。
繰り返しますが、Initializeルーティンの TextBox5.Value = x & "/" & レコード数 は削除してくださいね。
|
|