質問: textbox3.value + 1 next end sub 'ユーザーフォームの終了 private sub commandbutton5_click() unload userform1 end end sub 以上よろしくお願い申し上げます。使用機種はwindowsvistaで、 excel2007です。私はvba初心者です。
回答: >private sub commandbutton3_click() >: >with worksheets(1) > .cells(rowpos, colpos) = textbox3.value > .cells(rowpos, colpos + 1) = txtdate.value >end with .cells(rowpos, colpos) = textbox3.value ここが「入力no.」をセルにセットする箇所。 textbox3.valueの値はというと、 >private sub userform_initialize() > textbox3.value = worksheets(1).range("a2").value + 1 > txtdate = date > call no >end sub ここでa2セル+1をセットして、call no でさらに+1。 a2セルが 2 だったら 2+1+1 で 4。 userform_initializeイベントで一定のセル値(a2)しか見に行ってないから そりゃ、固定になりますよね。 userform_initializeイベントで一定のセル値(a2)ではなく 最終行の値を見に行くようにすれば良いですよね。 あと、private sub no()の中身も見直して下さい。 何か意図があってそういう書き方してますか? 「入力no.」を増分させるには何処かのタイミングで textbox3.value = textbox3.value + 1 すれば良いです。 またはtextbox3に表示させる必要がなければ 新規データをセルにセットするタイミングで直上行+1でもいいわけです。 それとか .row-1とか。