|
▼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 の定義、あるいは、そこへの値の格納等の、関連コードをすべてアップいただかないと
なかなか、適切なアドバイスは困難ですねぇ・・・
|
|