この次はここにカーソルが飛んで欲しい!という時ありませんか??
カーソルの移動の順番をしていするにはタブオーダーという機能を使ってできます。
では、実際にやってみましょう!!
まず、フォームをデザインモードで開きます。
次にデザインタブのタブオーダーをクリックします。(青く囲っているところです)
そうすると、『タブオーダー』という画面が出るので、こちらで順番を決めます。
上からの順序で動きます。
こちらの表に書いてある順番は13個あるんですが、一番初めは『0』からスタートなので、12番までとなります。
ちなみプロパティシートのその他タブからも『タブ移行順』というところで設定可能です。
どちらからでも使いやすいほうで設定してください。
次はVBAで任意のところに飛ばしてみましょう!!
目次
VBAでカーソルを任意のところに飛ばす方法
別フォームからカーソルを任意のところに飛ばすときなどに便利な方法です。
『Me.テキストボックス名.SetFocus』だけなんです。
使用例としてはこんな感じになります。
Private Sub 見積日付表記_Enter()
If IsNull(Me![担当者CD]) Then
MsgBox "担当番号を入力してください。(レジ担当番号)", vbYes
Me!担当者CD.SetFocus
Else
Me!見積日付表記.SetFocus
End If
End Sub
こちらのコードの意味は『見積日付表記』というテキストボックスにカーソルが来たときに、『担当者CD』テキストボックスが空欄なら、”担当番号を入力してください(レジ担当番号)”というメッセージボックスを表示して『OK』を押すと『担当者CD』テキストボックスに戻る。 『担当者CD』が入力されていたら、『見積日付表記』というテキストボックスにカーソルをセットフォーカスします。
別フォームからセットフォーカスする場合
別フォームからセットフォーカスする場合は、フォーム名をテキストボックス名の前つけてあげます。
例えば、『見積修正』フォームの『得意先名』というテキストボックスにセットフォーカスするなら…
Forms![見積修正].[得意先名].SetFocus
という感じになります。
サブフォームにセットフォーカスする場合は…
まず、フォームをセットフォーカスします。その後に、サブフォーム名、テキストボックス名を書きます。
続けて書くと下のような感じです。
Forms![見積修正].SetFocus
Forms![見積修正]![得意先名].SetFocus
サブフォームだとちょっと、え?どーするんだろう…?(;-ω-)ウーンって一瞬、悩んじゃったりするんですが、このように書けば大丈夫です。
それでは、今日はこの辺で。また~♪