• ベストアンサー

テキストボックスで再入力不可機能

テキストボックスやコンボボックス、オプションボタンなど選択した後、次のフォーカスへ移動した時に再入力できないようにするのはどう処理をすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

次のフォーカスに移動したことを検出するためにgetfocusを使って、そのイベント時にlockedをfalseにすればいいと思います。

DINO-PIE
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

老婆心ながら申し上げますが、、、 使う側の立場に立った場合、ミスも許さないという動作はどうでしょうか? どういうシチュエーションか解りませんが、違うアプローチも含めて十分に検討されたうえで実装した方が良いかも。

DINO-PIE
質問者

お礼

ありがとうございます。別の専用ボタンを押すとロックが解除されるようにします。

関連するQ&A

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • テキストボックス入力後、警告メッセージを表示し、フォーカスを移動させない方法について

    テキストボックスの入力チェックを行うために下記のようなソースを記述しました。 下記を実行するとテキストボックスにどんな文字を入力してもメッセージボックスを表示し、 フォーカスが移動しない形となっております (厳密にはボタンにフォーカスが移動した後、テキストボックスにフォーカスを移動しています)。 これは Me.テキストボックス.SetFocus のみを記述した所、次の場所にフォーカスが移動してしまい、 下記のように書くとフォーカスが移動していないように見えるため、このようにしました。 ただこの記述はいささか強引な感じなので、これを改良したいと思っております。 2回フォーカスを移動させるのではなく、フォーカス移動を抑止する方法がベストと思いますが、 方法が分からなかったので、何かしらアドバイスをいただけれる方がいらっしゃいましたらよろしくお願いします。 【ソース】 Private Sub テキストボックス_AfterUpdate() MsgBox "エラー" Me.ボタン.SetFocus Me.テキストボックス.SetFocus End Sub 以上、よろしくお願いします。

  • テキストボックスに入力すると、コンボボックスが出現する

    いつもお世話になっています。 ExcelVBAについてなのですが、あるシート上にテキストボックスを作っておきます。 で、それに何か語句が入力されたら、テキストボックスの右にコンボボックスが出現するというのを作りたいのです。 そのコンボボックスで何かが選ばれたら、更にその下にテキストボックスが現れるというのが理想です。 並び順は テキストボックス1   コンボボックス1 テキストボックス2   コンボボックス2 テキストボックス3   実行ボタン 最初にあるのは「テキストボックス1」と「実行ボタン」のみです。その他の4つは隠れています。 テキストボックス1→コンボボックス1→テキストボックス2→コンボボックス2→テキストボックス3の順で出現するのを作りたいのです。 そういうことって可能でしょうか? あらかじめ作っておき、各々のプライベートでvisibleでfalseにして作ったのですが、テキストで「入力したら」とか、コンボで「選んだら」というのができませんでした。 よろしければお知恵をお貸しください。よろしくお願いします。

  • テキストボックスへにセル値の入力

    エクセルマクロの初心者で恐縮なのですが、ユーザーフォームのテキストボックスに下記のようなことは可能でしょうか? 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか? 例1・2)についてどのようなマクロを組めばよいのでしょうか? マクロにお詳しい方、大変申し訳ございませんか、ご指導お願いいたします。

  • ExcelVBAでコンボボックスを選択不可にする

    ExcelVBAで初期表示させたときにコンボボックスが選択できないようにするにはどうしたらいいか教えて下さい。 オプションボタンが4個あり、コンボボックスが3個あります。配置のイメージは以下の通りです。 <配置イメージ> ○オプションボタン1 ○オプションボタン2【コンボボックス1】 ○オプションボタン3【コンボボックス2】 ○オプションボタン4【コンボボックス3】 <今の状態> (1)初めに開いたときはどのコンボボックスもクリックできる (2)「オプションボタン1」を選択すると、全てのコンボボックスがクリックできない (3)「オプションボタン2」を選択すると、コンボボックス1が選択できるが、他のコンボボックス2と3は選択できない。 (4)「オプションボタン3」を選択すると、コンボボックス2が選択できるが、他のコンボボックス1と3は選択できない。 (5)「オプションボタン4」を選択すると、コンボボックス3が選択できるが、他のコンボボックス1と2は選択できない。 今の状態の(1)を改善したく、どなたか教えていただきたくお願い致します。

  • テキストボックスとコンボボックス

    こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。 フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。 しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。 そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。 動作のイメージとしては下記のようになります。 (1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。 (2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。 (3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示 以上、どなたかご教授よろしくお願いします。

  • 【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表

    【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表示させる方法 C#初心者です。 コンボボックスの処理につまずいています。 <処理> 1.コンボボックスに任意の数字を入力できるようにしておく。 2.そして、任意の数字を入力する。 3.ボタンを押したら、その入力した数字がテキストボックスに表示される。 1と2はできるのですが、3がよくわかりません。 どなたかご教授いただけると幸いです。 宜しくお願いいたします。

  • サブフォームのテキストボックスにフォーカスを戻す

    Access2010です。 メインフォームにいくつかのテキストボックスやコンボボックスと「登録」ボタンがあり、メインフォームの中には帳票形式のサブフォームがあります。 サブフォームには ・数量 ・単価 ・金額 のテキストボックスがあります。 フォーカスがサブフォームのいずれかのテキストボックスにある状態で、「登録」ボタンをクリックするとYES/NOボタンがある確認画面が表示されます。 そこでNOを選択した場合に、直前までフォーカスがあったサブフォームのテキストボックスへフォーカスを戻すにはどうしたら良いでしょうか?

  • フォーカスがあるテキストボックスに文字を入れる

    GUIでテキストボックスとボタンを作っています。 ボタンをクリックすると、GUIのテキストボックスに書かれた文字がWebブラウザ側にあるテキストボックスへ挿入されるという処理をしたいです。 この処理は、ボタンを押す前にWebブラウザ上のテキストボックスにフォーカスを移し、その後ボタンを押したらフォーカスがある位置に文字を挿入すればできるのではと考えたのですが。。。 フォーカスがある位置に文字を挿入させるやり方がわかりません。 どなたか分かる方教えてください><;

  • テキストボックスのデフォルト設定とコンボボックスの更新について

    テキストボックスのデフォルト設定とコンボボックスの更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中にはコンボボックスとテキストボックスとボタンがあります。 コンボボックスには「ABCDEFGHIJKLM」と合計13のリストがあります。 ユーザーフォーム起動時に、コンボボックスには最初のリスト(A)が表示 されていて、「次へ」ボタンと「戻る」ボタンの2つを用意しています。 (1)ユーザーフォーム起動時にテキストボックスに「0」を入れる方法を教えていただけないでしょうか。 コンボボックスで「A」が選択された状態で「次へ」ボタンをおしたら「B」が選ばれる。 「D」が選択された状態で「次へ」ボタンをおしたら「E」が選ばれる。 「M」が選択された状態で「次へ」ボタンをおしたら「A」が選択される。(リストの最初に戻る。) というのは、次のVBAで上手くいきました。 If Combobox1.ListIndex < Combobox1.ListCount - 1 Then Combobox1.Text = Combobox1.List(Combobox1.ListIndex + 1) Else Combobox1.Text = Combobox1.List(0) End If (2)しかし「E」が選択された状態で「戻る」ボタンをおしたら「D」が選ばれる。 「G」が選択された状態で「戻る」ボタンをおしたら「F」が選ばれる。 「A」が選択された状態で「戻る」ボタンをおしたら「M」が選ばれる。(リストの最後に戻る。) といった内容のマクロがうまく組めません。 教えていただけると助かります。

専門家に質問してみよう