ここから本文です

ユーザーフォームのテキストボックスに一つ前の入力した値を表示する ユーザーフ...

kur********さん

2020/6/120:49:46

ユーザーフォームのテキストボックスに一つ前の入力した値を表示する
ユーザーフォームにテキストボックスとコマンドボタンを配置し、テキストボックスに一つ前の数字が入るようにすることは可能でしょうか?

・入力フォームは1日から31日の在庫数をテキストボックス2-32に数字を入力します
6-6-6-6-6-7-・・・のような変化のない時も多くあるため、テキストボックス2へ6と入力しenterを押すとテキストボックス3へカーソルが変わります その際、テキストボックス3へテキストボックス2の値が入っていて、変化がなければenterを押してテキストボックス4へ、変化があれば他の数字を入力してenterを教えてテキストボックス4へ…といったことは可能でしょうか。
(テキストボックス1と33へは不要です)


Private Sub UserForm_Initialize()
Dim i As Long, eom As Long
eom = Evaluate("=Day(Eomonth(E1,0))") '日付けの入力場所
TextBox1.TabIndex = 0
TextBox33.TabIndex = 32
CommandButton1.TabIndex = 33
For i = 2 To 32
With Me.Controls("TextBox" & i)
.TabIndex = i - 1
.ControlTipText = ActiveSheet.Cells(1, i + 5).Text 'テキストボックスのうっすら表示
If i > eom + 1 Then
.Visible = False
Me.Controls("Label" & i - 1).Visible = False
End If
End With
Next
End Sub

閲覧数:
52
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hot********さん

2020/6/208:32:16

31個のテキストボックスに機能を加えるので、本来はClassを使うのですが、WithEventsでEnterとExitイベントが捉えられないようなので、TextBox1からTextBox31までイベントを描く場合です。
とりあえずTextBox1からTextBox6までの場合です。


Dim lastInput As String

Private Sub tb_Enter()
With ActiveControl
.Value = lastInput
.SelStart = 0
.SelLength = Len(.Value)
End With
End Sub
Private Sub TextBox1_Enter(): tb_Enter: End Sub
Private Sub TextBox2_Enter(): tb_Enter: End Sub
Private Sub TextBox3_Enter(): tb_Enter: End Sub
Private Sub TextBox4_Enter(): tb_Enter: End Sub
Private Sub TextBox5_Enter(): tb_Enter: End Sub
Private Sub TextBox6_Enter(): tb_Enter: End Sub


Private Sub tb_Exit()
lastInput = ActiveControl.Value
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean): tb_Exit: End Sub

31個のテキストボックスに機能を加えるので、本来はClassを使うのですが、WithEventsでEnterとEx...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる