• ベストアンサー
  • 暇なときにでも

VBAでTabキーを移動させたい

  • 質問No.4187
  • 閲覧数893
  • ありがとう数2
  • 回答数3

お礼率 63% (81/128)

Access上のフォームで、ある結果がテキストボックスに表示されたときのみ、AというコマンドにTabキーを自動的に移動させたいのですが、
1.イベントプロシージャはフォーカス取得後なのか、喪失時なのか
2.VBAはIf文でどうかけばよいのか
うまくいかなくて困っています。ご回答お願いします。

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

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

ベストアンサー率 19% (4/21)

「Aというコマンド」とはコマンドボタンでしょうか?とりあえずそういうことで進めます。テキストボックスの名前は「txtB」とします。
Bにコントロールがあり、その内容が更新されて求める値「xxx」になった場合に、Aにフォーカスを移動する>Bの更新後のイベントプロシジャーに、

if isnull(me!B) = false then
if me!B = "xxx" then
me!A.setfocus
end if
end if

でフォーカスが移動しないですか?
補足コメント
ponpon

お礼率 63% (81/128)

どうもありがとうございました.このページが開けず、なかなかお礼が出来ませんでした.すみません。
早速やってみたのですが、なぜか出来ないんです.
私のやりたいことはTetsuroMさんのおっしゃるとりなんですが…
質問する前に"docmd.go to control"でも試してみたんですけど、
どうやら原因は他のところにあるようです。
他のプロシージャも動かなかったりしますので、追求してみます。
これからもよろしくお願いいたします。
投稿日時:0000/00/00 00:00

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 19% (4/21)

先ほどの補足になりますが、自動タブによる移動がセットフォーカスメソッドに優先してしまうので、正しくは「Bの更新後のイベントプロシジャーに」判断するif文を書くのでなく、「B」の次にフォーカスをゲットするフィールドのフォーカス取得時、またはフォーカス取得後のイベントプロシジャーに書いて試して見てください。
  • 回答No.2

ベストアンサー率 46% (643/1383)

「Aというコマンド」とは「Aというコントロール」のことでしょうか?
「Tabキーを自動的に移動」とは、「フォーカスを移動」のことでしょうか?

もしそうでしたら、#1でTetsuro_M さんがお書きのように、SetFocusメソッド
を使う、というのが答えになります。実行するタイミングについては、いつでもい
いです。

もしこの解釈が違う、あるいは、この説明では分かりにくい、というのであれば、
補足にその旨をお書きください。ponponさんが悩んでおられる状況を具体的に書い
ていただけると、より的確な答えが書けるかと思います。
補足コメント
ponpon

お礼率 63% (81/128)

説明不足ですみませんでした.
Tetsuro_Mさんの予測どおりです。#1下にも書かせていただきましたが
ただ今Access自体を修復中です。ありがとうございました。
これからもよろしくお願いします。
投稿日時:0000/00/00 00:00
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ