• 締切済み

EXCEL VBA カーソル移動方法?

エクセル2000でユーザーフォームを作成し テキストボックス1~6まで作成し テキストボックス1~3を1段目、4~6を二段目で配置した場合 エンターキーでケキストボックス1⇒2・・・6のカーソル移動は わかるのですが、テキストボックス2から下に配置してある テキストボックス5に矢印キー↓でカーソルを動かすようにはどのように すればよろしいのでしょうか? 又、おなじようなことなのですがテキストボックス2から 矢印←でテキストボックス1にカーソルを移動させるのも 同じでしょうか? 宜しくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 テキストボックスは、下矢印 ↓ 上矢印↑ の移動は可能なはずです。 単に、横の移動の際にタブが邪魔になって動かないのではないでしょうか? ですから、マクロは単に横の動きだけを取り付けてあげればよいはずです。Excel 2000 で調べてみましたが、同じでした。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)   Dim j As Integer   j = Right(ActiveControl.Name, 1)   If KeyCode = 39 Then     OnFocus 1, j   ElseIf KeyCode = 37 Then     OnFocus -1, j   End If End Sub 'TextBox2~6 まで上と中身は同じコード Private Sub OnFocus(ByVal i As Integer, ByVal j As Integer) Const TOTALOBJ As Integer = 6 'テキストボックスの数 Dim k As Integer  If i > 0 Then   k = (j + TOTALOBJ) Mod TOTALOBJ + 1   Controls("TextBox" & k).SetFocus  Else   k = (j + TOTALOBJ - 2) Mod TOTALOBJ + 1   Controls("TextBox" & k).SetFocus  End If End Sub

77TAKETAKA
質問者

お礼

上記確認いたしました。 簡潔でわかりやすいです。 ありがとうございます。

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

こんにちは 全部書くのも気が引けるので・・・ Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Select Case KeyCode Case 37 TextBox1.SetFocus Case 38 TextBox5.SetFocus Case 39 TextBox3.SetFocus Case 40 TextBox5.SetFocus End Select End Sub 後は頑張って下さい。

77TAKETAKA
質問者

お礼

ありがとうございます。 後は何とかできると思います。 頑張ります!

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

セルと違い、TABオーダーで指定した順にしか移動できません。 どうしてもやりたいのであれば、TextBox1_KeyDown 等のイベントでキーコードを受取って希望の動作をするようにするしか無いでしょう。

77TAKETAKA
質問者

お礼

そうですね、キーコードを受け取れば出来ますね。 適切なヒントありがとうございます。

関連するQ&A

  • 【エクセルVBA】 タブでのカーソル移動の質問です

    ユーザーフォームを設置して、テキストボックスを複数設置し、入力援助するVBAを組んでいます。 タブインデックスのとおりに、タブもしくはエンターキーで、通常はカーソルがテキストボックス間を移動しますが、ほんのたまにですが、エンターキーで移動ができず、またタブキーではテキストボックス内にタブができてしまい、次のテキストボックスに移動しない現象が現れます。 そうした場合はマウスで次のボックスにカーソルを移動しますが非常に面倒です。またこの現象はファイルを再起動したら直ったり直らなかったり、ウインドウズを再起動しても直らなかったりで困っています。 どうしてこのようなカーソル移動の不具合が起こるのか、またはどうしたら無くなるのでしょう?

  • VBAのフォーム カーソル移動

    VBAのフォームでテキストボックス(1)~テキストボックス(5) まで作ったとします。 カーソルの移動はtabindexの値を順番につければいいのですが、例えばENTERキーとTABキーを両方押したときは カーソルが一つ飛ぶ制御をしたいのですがどうすればいいでしょうか? つまり カーソルがテキストボックス(1)にいる状態でENTERキーとTABキーを同時に押せばカーソルがテキストボックス(3)に移動するようにしたいのですが、お願いします

  • エクセルでのカーソルの移動

    キーボードで矢印キーを押してもカーソルの位置が動かず、画面が移動するようになってしまったのですが、矢印キーでカーソルの位置が移動するようにするにはどのようにすればよいのでしょうか? ちなみにエクセル2003です。

  • エクセルのカーソル移動について

    エクセル初心者です。 エンターキーを押すと、通常下に移動するカーソルが横に移動します。 どうやったらこのようになるのですか? また、どのようにして直せばいいですか?

  • エクセルのカーソルが動かなくなった。

    エクセル2003です。 エクセルのセルのカーソルを移動したいのですが、矢印のキー(↓→←↑)で昨日までは移動していました。しかし今日から矢印のキーを押すとエクセルに画面だけが上下左右に動くだけで、セルの黒い枠のカーソルが移動しなくなりました??  どうしたら矢印キーでカーソルが移動できるようになるのでしょうか? 宜しくお願いいたします。

  • エクセルのカーソル移動の設定

    エクセル95で、枠固定して使っています。普通に矢印キーでカーソル移動出来ていたのに誰かがいじったせいか、最近は矢印キーを押すとカーソルが移動せずに、表が移動してしまいます。どうやって設定を戻せばいいでしょうか?

  • excel カレンダーコントロールを使ってカーソル移動

    お世話になります。 現在、excelでスケジュール帳を作成しています。 1枚のシートで1年分です。 そこで、何かの方法を使って 日付を選択→その日付にカーソル(フォーカス?)を移動させたいと思っています。 ユーザーフォームを他で使用するので、そこに日付の選択も付け加えようとしています。 1.テキストボックスに日付を入力させる。 テキストボックスを日付設定することが、まず難しそうなので断念。 2.カレンダーコンロールを発見。 これなら日付を選ぶだけ。 ただし、どうやってそれをカーソル移動に反映させるかがわからず。。 ネットで調べましたが、自力では解決できませんでした。 アドバイスお願いします。 XP、excel2007使用中。

  • エクセルで任意のセルのみカーソルを止めたい

    エクセルでエンターキーを押すと (1)現在の位置から3つ右にカーソルを止めたい (2)次に5つ下に移動したい エンターキーや方向キーを数回押して移動する のではなくエンターキーを押すと任意の位置に カーソルが止まるようにするには、どのように すればいいのでしょうか? よろしくお願いします。

  • カーソルが移動しなくなりました

    EXCELでどこか触ったのかカーソルが移動しなくなりました。 具体的に言えば、普通は矢印キーでカーソルの移動が出来たのですが、 今現在矢印キーを押すと画面がスクロールし、カーソルの位置は変わりません。 どこを触れば直りますか? ご存知の方おられましたら宜しくお願い致します。

  • エクセル カーソルの移動方向を変える方法

    エクセルでエンターキーでデータ入力後カーソルが下へ移動するのを右へ変える方法を教えてください。

専門家に質問してみよう