|
Yoshieさん、ねこ@江坂さん、こんにちは。
この記述だと、どのKeyを押しても反応してしまいます。
また、KeyDownイベントを検知した後、Focusがコントロールに戻ろうとするのを
Myws.Activate
でじゃまをしているんでは無いでしょうか?
それで、Excel又はコントロール(この場合はListBox)に怒られてしまったのでしょう。
やりたいことを私なりに解釈して、修正してみました。
Private Sub Workbook_Open()
Dim ws As Worksheet
With Sheet1.ListBox1
.Clear
For Each ws In Worksheets
.AddItem ws.Name
Next
.ListIndex = 0
End With
End Sub
Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Myws As Worksheet
If KeyCode = vbKeyReturn Then
On Error Resume Next
Set Myws = Worksheets(Sheet1.ListBox1.Value)
On Error GoTo 0
If Not Myws Is Nothing Then
Myws.Activate
Myws.Range("A1").Select
End If
End If
End Sub
|
|