| 
    
     |  | ▼ume さん: 
 こんにちは
 
 やはり、少し落ち着いて整理されたほうがよろしいかと思いますよ。
 
 >0以下を回避する方法は無いものなのでしょうか
 
 コードだけの対応であれば、0以下かどうかを判定して
 
 If 0以下 Then
 その場合の編集
 Else
 通常の編集
 End If
 
 こうすればよろしいのですが?
 
 ただ、それ以前に
 
 ・まず、ユーザーフォームが表示された時点では、どの行も選ばれていないという状態にしたいのか?
 ・それとも、最初は、1件目(つまり、シートの2行目)が選ばれた状態にしたいのか?
 
 umeさんの設計次第ですけど、ここをどうするのかによって扱いはかわってきますね。
 
 で、申し上げましたけど、初期値 min は 0 のままです。
 それで、だめということじゃないんですよ。
 要は、スピンボタンの値とデータが何件目かという紐つけをumeさんのコードで、
 どのように定義づけられているかという「設計」次第です。
 
 実際の行は2行目〜データ最終行ですから、シートの行とあわせるとすれば
 Minが2という決め事(設定)でもよろしいですし、
 いやいや、スピンボタンの値は「データの何件目かという値」とするなら
 minは 1 という決め事(設定)でもよろしいでしょうし。
 そうではなく、データの1件目(つまりシートの2行目)に対してはスピンボタンは 0 なんだと
 そういう決め事(設定)でもよろしいんです。
 それらの方針に従ったコードを書けばいいわけですから。
 
 そのあたりの方針はいかがですか?
 
 それと、気になっているんですが
 たとえばシートの10行目までデータがあるとしましょう。1行目はタイトル行でしょうから
 この場合のデータ件数は 9 ですよね。
 したがって 各データは ○/9 という表示(○ は 1〜9) となりますよね?
 
 で、SpinButton1.Max = レコード数取得 + 1
 ここがなぜ + 1 なのかわからないんです。
 スピンボタンは、この場合 10 までアップできるわけです。
 スピンボタンの値が 10 の場合、これは【何件目】のデータを相手にするのですか?
 
 なんとなく、やってみたら 1 多かったからとか 1 少なかったからということで
 やみくもにコードに手当てを加えるのではなく、「本筋論としてこんな構えだから 1 を加える」
 といったことで開発していかないと、何がなんだかわからなくなりますよ?
 
 いずれにしても、そのあたりに対するumeさんの明確な仕様(要件)提示と、
 配列 TBL の定義、あるいは、そこへの値の格納等の、関連コードをすべてアップいただかないと
 なかなか、適切なアドバイスは困難ですねぇ・・・
 
 |  |