dポイントプレゼントキャンペーン実施中!

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/30 13:02

こんにちは


全部書くのも気が引けるので・・・

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
後は頑張って下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/30 12:59

セルと違い、TABオーダーで指定した順にしか移動できません。



どうしてもやりたいのであれば、TextBox1_KeyDown 等のイベントでキーコードを受取って希望の動作をするようにするしか無いでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/30 12:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!