- 締切済み
EXCEL VBA カーソル移動方法?
エクセル2000でユーザーフォームを作成し テキストボックス1~6まで作成し テキストボックス1~3を1段目、4~6を二段目で配置した場合 エンターキーでケキストボックス1⇒2・・・6のカーソル移動は わかるのですが、テキストボックス2から下に配置してある テキストボックス5に矢印キー↓でカーソルを動かすようにはどのように すればよろしいのでしょうか? 又、おなじようなことなのですがテキストボックス2から 矢印←でテキストボックス1にカーソルを移動させるのも 同じでしょうか? 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 テキストボックスは、下矢印 ↓ 上矢印↑ の移動は可能なはずです。 単に、横の移動の際にタブが邪魔になって動かないのではないでしょうか? ですから、マクロは単に横の動きだけを取り付けてあげればよいはずです。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
- WWolf
- ベストアンサー率26% (51/192)
こんにちは 全部書くのも気が引けるので・・・ 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 後は頑張って下さい。
お礼
ありがとうございます。 後は何とかできると思います。 頑張ります!
- hana-hana3
- ベストアンサー率31% (4940/15541)
セルと違い、TABオーダーで指定した順にしか移動できません。 どうしてもやりたいのであれば、TextBox1_KeyDown 等のイベントでキーコードを受取って希望の動作をするようにするしか無いでしょう。
お礼
そうですね、キーコードを受け取れば出来ますね。 適切なヒントありがとうございます。
お礼
上記確認いたしました。 簡潔でわかりやすいです。 ありがとうございます。