VBAのユーザーフォームのテキストボックスの入力につて 以下2つにてご教示願います。

プログラミング | Excel35閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

1

1人がナイス!しています

カーソルの移動は自由です。 入力後、カーソルを動かし、左や真ん中で再入力 「123a45」 にする可能性もあります。これにも対応しています。

ThanksImg質問者からのお礼コメント

独学ではじめたばかりで行き詰まっていたところでした。 メンターになっていただきたいくらいです。 ありがとうございました!

お礼日時:5/14 13:20

その他の回答(2件)

0

①はユーザーが1を入力するとメッセージボックスが出て空欄になります。 あいうえお と入力するとOKでその後1を入力しても TextBox1.Textは「あいうえお1」という値なので永遠にLike "[0-9]"が満たされないです。許可するのが逆なだけでなく対象がTextBox1.Textなので最初OKならそのあとはズーとOKになります。 本当は、数字以外1文字入力したらカーソルを前に戻す、という処理ですよね。対象はTextBox1.TextではなくあくまでもTextBox1.Textの中の最後の1文字です。 こんなかんじかな、 Private Sub TextBox1_Change() Dim l As Long With TextBox1 l = Len(.Text) If l = 0 Then Exit Sub If Not Mid(.Text, l, 1) Like "[0-9]" Then MsgBox "半角数字を入力してください" .Text = Replace(.Text, Mid(.Text, l, 1), "") End If End With End Sub ②も大体は同じ、

この返信は削除されました

0

どううまくいかないのですか? エラーが出ますか? どこで出ますか?

If TextBox1.Text Like "[0-9]" Then TextBox1.Textが0~9ならの条件なので、 Not()で囲むか、=Falseを付けると条件に沿うでしょう。 下も同様。