質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

3289閲覧

エクセルVBA ユーザーフォームの選択順序の設定について

onionion

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/10/17 01:34

編集2018/10/17 01:38

前提・実現したいこと

ユーザーフォームでフィルターを設定するマクロがあります。
このマクロ自体は正常に動作しているのですが、タブオーダーで順番を設定しているにも関わらず、
TextBox1にカーソルを置いた後にエンターキーを押すと
TextBox2に移行してほしいのですが、実行ボタンが選択されてしまいます。

図解すると下記のとおりです。
TextBoxは左が1、下にいくにつれTextBox2、TextBox3と続き、
10個連なると改行して右の列にTextBox11、TextBox12…と続いていきます。

タブオーダーの設定は下記のとおりです。
途切れてますが、一番下にコマンドボタンがあります。

発生している問題・エラーメッセージ

特にないです。

該当のソースコード

特になし

試したこと

①タブオーダーの設定
②コマンドボタンを一度削除し、
テキストボックス配置後に再度作り直しました。

補足情報(FW/ツールのバージョンなど)

win10、excel2016、64bit環境です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

tabオーダーは、enterでなくて、tabまたは、shift+tabキーを押したときの順番でなかった?

投稿2018/10/17 04:33

akirafudo6

総合スコア341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2018/10/17 04:53

タブもエンターもTabIndex順に動きますよ。
guest

0

ベストアンサー

.Default を検索してみてください。
恐らく .Default = True となっているはずです。

本来は、実行ボタン等をどこからでもEnter押下で実行できるようにする、
便利な機能なのですが、邪魔だということであれば、
コメントアウトすればいいと思います。

類似で、Cancelプロパティがあります。
これをTrueにすると、Escキーに割り当てられ、
閉じるボタン等に設定して閉じやすくしたりできます。

詳しくは↓が参考になるかと。
https://www.petitmonte.com/excel/excel_vba_35.html

投稿2018/10/17 03:15

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onionion

2018/10/18 01:36

こんな機能があったのですね。参考になりました。 ただ確認してみましたが実行ボタンのDefaultプロパティはFalseでした。 また説明不足で恐縮ですが、実行ボタンにフォーカスが移動するだけでマクロが実行されるわけではないんです。一応、カーソルキー下では1→2を選べますが不便なので。。。 また、テキストボックス2以降でこの問題(エンターキーを押すことで実行ボタンにフォーカスが移動する、およびマクロが実行される)は発生していませんので、これが原因ではないと思います。
ExcelVBAer

2018/10/18 03:58

なんと。。。 あと考えられるとしたら、 該当コントロールのKeyDownかKeyPressイベントで、 Enterキー押下時に実行ボタンへSetFocusしているか??
onionion

2018/11/13 09:31

お返事が大変遅くなりまして誠に申し訳ありません。 そのような処理もなく理由も不明でしたが、一から作り直すことで、とりあえず問題は解決いたしました。 今回いただいた回答は次に同様の問題が発生した時に見直す点とさせていただきます。ありがとうございました。
ExcelVBAer

2018/11/13 10:30

なんとも不可解な状態ですね汗
guest

0

実行ボタンのDefaultプロパティがTrueに設定されているのでは?

投稿2018/10/17 01:42

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onionion

2018/10/18 01:38

こんな機能があったのですね。参考になりました。 ただ確認してみましたが実行ボタンのDefaultプロパティはFalseでした。 また説明不足で恐縮ですが、実行ボタンにフォーカスが移動するだけで設定されたマクロが実行されるわけではないんです。一応、カーソルキー下を押すことでTextBox1→2の移動はできますが。。。 また、テキストボックス2以降でこの問題(エンターキーを押すことで実行ボタンにフォーカスが移動する、およびマクロが実行される)は発生していませんので、これが原因ではないかな、と思っています。
ttyp03

2018/10/18 01:42

コード内でTrueに設定しているようなこともないでしょうか? 例えばInitializeイベントとかで。
ttyp03

2018/10/18 01:58

なんとなくキーイベントを拾って意図的に実行ボタンをアクティブにしているような感じがします。 そのような処理もないのでしょうか?
onionion

2018/11/13 09:31

お返事が大変遅くなりまして誠に申し訳ありません。 そのような処理もなく理由も不明でしたが、一から作り直すことで、とりあえず問題は解決いたしました。 今回いただいた回答は次に同様の問題が発生した時に見直す点とさせていただきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問