• ベストアンサー
  • 困ってます

EXCEL VBA SetFocus について教え

  • 質問No.7178029
  • 閲覧数415
  • ありがとう数2
  • 回答数1

お礼率 69% (9/13)

ComboBox3 で郵便番号 住所 を選択して
TextBox8 に表示 その後番地等を記入するため

Private Sub ComboBox3_AfterUpdate() '郵便番号 住所
Workbooks("*****.xls").Activate
Worksheets("**").Activate
With UserForm7
No = .TextBox1.Value
.TextBox7.Value = Mid(.ComboBox3.Text, 1, 8)
Cells(No + 1, 7).Value = Mid(.ComboBox3.Text, 1, 8) '郵便番号
.TextBox8.Value = Mid(.ComboBox3.Text, 10) '住所
Cells(No + 1, 8).Value = .TextBox8.Value
.ComboBox3.Visible = False
.TextBox8.SetFocus
.TextBox8.TabIndex = 4
.TextBox8.Text = Mid(.TextBox8.Text, 1)
End With
End Sub

上のコードで TextBox8 の テキストの最後にカーソルを移動したいのですが
TextBox8 に カーソルは現れません。(UserForm7の最初のTextBox1にフォーカスが移る)

UserForm8 にも 同様なコードが有りますがこちらは期待どうり動作します。
タブオーダーとかの違いは有りますが関係するのでしょうか 
よろしくお願いします。

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

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

ベストアンサー率 42% (6/14)

AfterUpdate イベントですが
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B436443#appliesto

のケースには該当しませんか?
このケースなら対策は示されていません。別のイベントでカーソルを移動するようにコードを作り直すしかないと思います。全体のコードがないのでどのように書き直べきかは解りません。
補足コメント
cfkty

お礼率 69% (9/13)

早速のご回答有難う御座いました。

状況は ご教示の Microsoftのサイト で理解できました。

>別のイベントでカーソルを移動するようにコードを作り直すしかないと思います。

についてですが ご教示頂けるものがあればよろしくお願いします。テストしてみます。

Private Sub ComboBox3_Change()
UserForm7.TextBox8.SetFocus
End Sub

ではだめでした。

>全体のコードがないのでどのように書き直べきかは解りません。

についてですが 制限字数内に入りそうですが観ていただく様にするには少し時間が必要ですので

よろしくお願いします。
投稿日時:2011/12/09 10:55
お礼コメント
cfkty

お礼率 69% (9/13)

まだお聞きしたいことがあるのですが どうすればいいのか追加の質問などの仕方がわかりませんのでいったん終了にして改めて質問します。
取り敢えず 有難う御座いました。
投稿日時:2011/12/09 20:36
関連するQ&A

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

ページ先頭へ