| 
    
     |  | ▼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 & "/" & レコード数 は削除してくださいね。
 
 
 はい、上記の記述で完ぺきに動作しております
 いつもいつも、教えていただきほんとに感謝です
 まだまだ、機能を付けていきますが
 また つまずいた時にはご教授よろしくお願いいたします。
 
 
 |  |