[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックス 内容を書き換える』(みず)
こんばんは
ユーザーフォームにテキ
ストボックスとリストボックスがあります。
テキストが書き変わったら
テキストボックスのチェンジイベントで
テキストに書き込まれた文字を含むリストに
絞り込んでいく様にしています。
チェンジイベントで
リストボックスの表示が
新しく書き変わらず
今表示されている後ろに
どんどん追加されていきます。
リストボックスをクリアする様に
書き加えたのですが
エラーになります。
どのタイミングの時
何処に、どのように記述するのかが
分かりません。
どなたか教えて頂けませんか?
Option Explicit
Private Sub TextBox1_Change()
Call ListChange3
End Sub
Private Sub UserForm_Initialize()
Call ListAdd3
End Sub
Option Explicit
Sub FormShow3()
UserForm3.SHOW vbModeless
End Sub
Sub ListAdd3()
Dim ListCount As Long
Dim i As Long
Dim MaxRow As Long
Dim C As Long
Dim TargetStr As String
'リストの最終行を取得
MaxRow = Sheets("工具リスト").Cells(Rows.Count, 6).End(xlUp).Row
With UserForm3
.ListBox1.ColumnCount = 3 .ListBox1.ColumnWidths = "60;40;40" For i = 3 To MaxRow
C = .ListBox1.ListCount .ListBox1.AddItem "" .ListBox1.List(C, 0) = Cells(i, 6).Value .ListBox1.List(C, 1) = Cells(i, 4).Value .ListBox1.List(C, 2) = Cells(i, 5).Value
Next i
End With
End Sub
Sub ListChange3()
'テキスト入力部分が変更されたときに、
'入力されたテキストと部分一致するリストを作成
Dim i As Long, C As Long
Dim MaxRow As Long
Dim TargetStr As String
'リストの最終行を取得
MaxRow = Sheets("工具リスト").Cells(Rows.Count, 6).End(xlUp).Row
TargetStr = UserForm3.TextBox1.Value 'テキストを取得
Debug.Print TargetStr
'一度リストを削除する
'UserForm3.ListBox1.List = Array()
With UserForm3
'.ListBox1.AddItem ""
.ListBox1.ColumnCount = 3 .ListBox1.ColumnWidths = "60;40;40" For i = 3 To MaxRow If InStr(Cells(i, 6), TargetStr) <> 0 Then '.ListBox1.Clear C = .ListBox1.ListCount .ListBox1.AddItem "" .ListBox1.List(C, 0) = Cells(i, 6).Value .ListBox1.List(C, 1) = Cells(i, 4).Value .ListBox1.List(C, 2) = Cells(i, 5).Value Debug.Print .ListBox1.List(C, 0) End If Next i End With
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.