Private Declare Function SendMessageStr Lib "user32.dll" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal MSG As Long, _
ByVal wParam As Long, ByVal lParam As String) As Long
Private Const LB_FINDSTRING = &H18F
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Sub Command1_Click()
Dim rc As Long
rc = SendMessageStr(Me.List1.hWnd, LB_FINDSTRINGEXACT, -1, Me.Text1.Text)
If rc > -1 Then
MsgBox (rc + 1) & "項目が同じです"
Me.List1.ListIndex = rc
Else
MsgBox "見つかりませんでした"
End If
End Sub
Private Sub Command2_Click()
Dim rc As Long
rc = SendMessageStr(Me.List1.hWnd, LB_FINDSTRING, -1, Me.Text1.Text)
If rc > -1 Then
MsgBox (rc + 1) & "項目が指定した文字列を含んでいます"
Me.List1.ListIndex = rc
Else
MsgBox "見つかりませんでした"
End If
End Sub
Private Sub Form_Load()
Me.Command1.Enabled = False
Me.Command2.Enabled = False
Me.Text1.Text = ""
Me.List1.Clear
Me.List1.AddItem "こんにちは。"
Me.List1.AddItem "これは"
Me.List1.AddItem "リストボックスの中から"
Me.List1.AddItem "文字列を探す"
Me.List1.AddItem "サンプルです"
End Sub
Private Sub Text1_Change()
If Me.Text1.Text <> "" Then
Me.Command1.Enabled = True
Me.Command2.Enabled = True
Else
Me.Command1.Enabled = False
Me.Command2.Enabled = False
End If
End Sub |