[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA:フォームのTab Indexがうまくいかない』(よ)
VBA:ユーザーフォーム内のTab Indexがうまくいかない。
他の人が作ったユーザーフォームを利用した入力フォームを修正しようとしています。 コンボボックス、テキストボックスに内容を入力して、OKボタンを押すと入力結果がセルに反映されるというものなのですが、 入力時にEnterキーで次のテキストボックスへ進もうとすると処理が終わってしまうので困っています。 Tab Indexは順番通りに設定しており、Tabキーで進むと順番通りに進むのですが、Enterキーで進もうとすると、 残りのテキストボックス等を無視して処理が終了してしまいます。 このフォームを使用する多くの人からこの点について苦情が来ており、直さなければならなくなったのですが、 どこを直せばいいのかが全然わかりません。 もしどなたかわかる方がいらっしゃいましたら、ぜひ教えてください。 よろしくお願い致します。
OKボタンの tabstopプロパティ を false にしては?
(INA)
(INA)さん、ありがとうございました。 実はそれも試してみました。 ですが、やはりEnterキーで進もうとすると、処理が終了してしまいます。 コンボボックス、テキストボックス合わせて30近く入力項目があるのですが、どこで入力をしていても、 とにかくEnterキーを押すとOKボタンを押した時と同じ処理になってしまうのです。 何卒よろしくお願い致します。(よ)
TabstopをFALSEにするとtabキーでフォーカスは移動しません。 .SetFocusメソッドや、マウスでクリックすれば、フォーカスが移動しますので、 その辺を確認してみて下さい。
あとはマクロで Enterキーに何らかの処理が割り当てられていませんか? (OnKey メソッドとか) (INA)
ボタンのDefaultプロパティがTrueになっているとか。 (KAMIYA)
INAさん、KAMIYAさん、ありがとうございます!! KAMIYAさんのおっしゃる通り、DefaultプロパティがTrueになっておりましたので、Falseに変えたら無事Enterキーでも 移動ができるようになりました。 お二人に感謝です(涙) 実はこの作業に半日以上費やしてしまいました・・・。 ところで、もうひとつお願いを聞いてください。 同じ件なのですが、Tab Indexを設定しても順番通りに動かない場合はどのような所をチェックしたらよいでしょうか? OKボタンが最後の順番にしているのに途中で選択されてしまいます。(よ)
フォームのコントロール以外の部分で右クリック、 ショートカットメニューから「タブオーダー」です。 (KAMIYA)
KAMIYAさん、さっそくありがとうございます。 お陰さまで希望通りの行きました! ところで、ヘルプでも調べてみたのですが出てこないので教えてください。 Tab Indexとタブオーダーはどのように使い分ければよいのですか? 今までTab Indexで順番を入れれば良いと思い込んでおりましたが・・。 何度もすみませんがよろしくお願い致します。(よ)
使い分けですか? うーん、そういわれると悩みますね。
手動でTabIndexを設定する時は 「最後に選択したいコントロールをまず 0 にして選択する逆の順番を追って Indexを 0 に設定していって、最後に、最初にFocusをあわせたいコントロールを 0 に設定する」と習いましたが、はっきり言って面倒くさい。
基本的にタブオーダーでの設定がTabIndexに反映されると思うのですが、 フレームが絡んだりするとTabIndexの数字だけ見ていたのでは わかりにくいし、ひとつだけIndex番号をいじっても他のコントロールの 順番も自動的に変わっていってしまうので 私の場合は視覚的に確認できるタブオーダーを利用しています。 (KAMIYA)
こんばんわ。 よ、さん、KMIYAさんの仰有るように、ほらタブオーダーで順番決める方が楽でっせ。 数が少なかったら別ですけど0から順にIndexを入力していくより、一覧になったんを 目ぇで確認しながら決める方がIndexの入力ミスが防げますしナ。 折角順番を決めやすいように設定してくれたあるタブオーダーを利用せん手はおまへん でぇ。 ほな...(弥太郎)
KAMIYAさん、弥太郎さん、ありがとうございます! そうですね。今日やってみてタブオーダーの方が簡単かつ確実ですね。 (Tab Indexは何回直したかわかりません・・。) とても勉強になりました。 本当にありがとうございました。(よ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.