[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォーム テキストボックスの文字が取得できない。』(より)
先輩方のお知恵を拝借したく、書き込みさせて頂きます。
質問内容:ユーザーフォーム テキストボックスの文字が取得できない。
OS:Windows7
アプリケーション:EXCEL2010
ファイル形式:EXCEL97-2003 ブック(.xls)
■■■■■■■■基本の動作■■■■■■■■■■
1) ファイルを開いたら、テキストボックスが現れ
入力待ちの状態になる
2) 5文字の数字(品番コード)を入力してもらい、
入力内容をメッセージボックスで表示。
以降、入力→表示を繰り返し。
※コードは0から始まることもある(例:01234)
のでString型で宣言しました。
■■■■■■■■例外の動作■■■■■■■■■■
3) テキストボックスが右上の(X)で閉じられた場合は
別途シート上に作成したフォーム「ボタン」を押せば
再び同じテキストボックスが現れ
入力待ちの状態になる。
4) 5文字の数字(品番コード)を入力してもらい、
入力内容をメッセージボックスで表示。
以降、入力→表示を繰り返し。
「問題(ご質問したい内容)」
基本の動作:1) - 2) は、思ったとおりの動きをするのですが、
例外の動作:一度、テキストボックスを閉じ、シート上の
フォーム「ボタン」を押して、再びテキストボックスを表示させた場合
5文字の数字を入れても何も起こらず、メッセージボックスが表示されません。
しかし、全角モードにしてから、5文字の数字入れてENTERを押すと
反応し、それ以降、何もなかったかのように、1) -2) の
思ったとおりの動きになったこともあります。
(この部分いろいろ試してみたのですが、どうもパターンが読めません。)
どのようにすれば、解決できるか、ご教示頂けませんでしょうか。
以下、コードです。
Private Sub Workbook_Open()
UserForm1.Show vbModeless
End Sub
Sub TextBox1_Change()
Dim Mynumber As String
Do Until Len(TextBox1.Text) = 5 DoEvents
Loop
Mynumber = UserForm1.TextBox1.Text
MsgBox "入力された数字 = " & Mynumber
TextBox1 = ""
End Sub
Sub ボタン5_Click()
UserForm1.Show vbModeless
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Change イベントの中でループしてはまずいのでは?
Sub TextBox1_Change() If Len(TextBox1.Text) < 5 Then Exit Sub MsgBox "入力された数字 = " & UserForm1.TextBox1.Text TextBox1.Text = "" End Sub のようにしてもダメでしょうか。
(Mook) 2015/05/19(火) 23:30
ご指導ほんとうにありがとうございます。
頂戴したアドバイスを本日事務所で試してみて、改めてご報告させていただきます。
(より) 2015/05/20(水) 07:31
本日、アドバイスいただいた内容を試したところ、全て解決して驚いています。
本当に助かりました。ありがとうございます!
(より) 2015/05/20(水) 20:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.