[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『InputBoxの文字数制限』(Jupi)
あるマクロ(仮にmacro1とします)を実行するとInputBoxが表示され、
半角英数字で12文字入力された場合、別のマクロ(仮にmacro2とします)が実行される。
12文字入力される、またはキャンセルボタンを押すまで、再度InputBoxが表示される。
このようなmacro1を作りたいのですが、よろしくお願いします。
インプットボックスで出来るのか判りませんので、ユーザーフォームのTextBoxでやってみました。
ユーザーフォームを作り、TextBoxを二つ重ねておきます。 Private Sub TextBox1_Change() With Me If Len(Me.TextBox1.Text) = 12 Then .TextBox1.Visible = False .TextBox2.Visible = True Range("A1").Value = .TextBox1.Text '←ここに入力したものをどうするか記述 .TextBox1.Value = "" End If End With End Sub Private Sub TextBox2_Change() With Me If Len(Me.TextBox2.Text) = 12 Then .TextBox2.Visible = False .TextBox1.Visible = True '←ここに入力したものをどうするか記述 .TextBox2.Value = "" End If End With End Sub Private Sub UserForm_Initialize() With Me .Caption = "入力" .TextBox1.AutoTab = True .TextBox1.MaxLength = 12 .TextBox1.IMEMode = 3 .TextBox2.AutoTab = True .TextBox2.MaxLength = 12 .TextBox2.IMEMode = 3 .TextBox2.Visible = False End With End Sub
(川野鮎太郎)
他人が作ったマクロを使いやすくしようとコードを見ていたら、InputBoxの12文字がmacro2で実行される様々な処理のキーワードになっていることがわかりました。
元々macro1でInputBoxが使われていたので、このInputBoxで文字数制限を設けようとしていました。
早速TextBoxで挑戦してみます。ありがとうございました。
(Jupi)
『InputBoxの文字数制限のマクロ分を具体的に教えてください』(toshi) '←ここに入力したものをどうするか記述 というところをマクロ文を具体的に教えてください。 お願いします Excel2002 WindowsXP
続きの質問は同じスレッド内の下に追加してください。
>というところをマクロ文を具体的に教えてください。
これは、Jupiさんが入力したものをどうしたいのかが判らないと、 誰にも回答できませんよ。 Jupiさんとtoshiさんって同じ方ですよね・・・。
(川野鮎太郎)
川野鮎太郎様
教えていただいた方法で思い通り動作しました。ありがとうございます。
あと、私はtoshiさんと別人です。
更新時間が数分しか変わらなかったので間違われたのかと・・・。
(Jupi)
一応、InputBoxでできないものかと挑戦。 Sub インプットボックス文字数制限() Rem TEST_20060121 Dim MyStr As String Dim Flg As Boolean Do Flg = False MyStr = InputBox(Prompt:="12文字以内で入力", Default:=MyStr) Select Case Len(MyStr) Case Is <> LenB(StrConv(MyStr, vbFromUnicode)) MsgBox "半角文字で入力してください" Flg = True Case Is > 12 MsgBox "12文字以内で入力してください" Flg = True Case Is = 0 MsgBox "キャンセルまたは未入力のため終了します" Exit Sub End Select Loop While Flg MsgBox StrConv(MyStr, vbNarrow) End Sub (みやほりん)(-_∂)b
なるほど、Do Loopですか・・・。 Do Loopは過去に何回も無限状態に陥ったため、思考回路から切り離されているもので・・・(^_^A;
ていうか、みやほりんさんのを試して判ったのですが、σ(^_^;)は根本的に質問の意味を 取り違えていたようです。_/ ̄|○ il||li
インストール時のシリアル番号入力のように、12文字を入力した時点で 次の入力を行えるようにするものだと勘違いでした。(T▽T)アハハ!
(川野鮎太郎)
>12文字入力される、またはキャンセルボタンを押すまで、再度InputBoxが表示される。 ということなので、 Case Is > 12 MsgBox "12文字以内で入力してください" これはあやしいかもしれません。 (みやほりん)(-_∂)b
みやほりん様
ありがとうございます。InputBoxでもできるのですね。自分なりに場合分けをアレンジしようと思います。
川野鮎太郎様
今後はバーコードからの読み込み入力が増えてくるので、"12文字を入力した時点で"の方が使い勝手良さそうです。
TextBox、InputBoxを使い分けようと思います。本当にありがとうございました。
(Jupi)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.