| 
    
     |  | ▼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 & "/" & レコード数 は削除してくださいね。
 
 |  |