vba é +- o mesmo código de vb6...
em vb6 eu faria algo assim..(usando DAO) usaria o evento para procurar no BD as palavras que comecem com o q foi digitado.... e carregaria o listbox a cada letra digitada
private sub txtdescriçao_keyup(KeyAscii As Integer)
a$=txtdescriçao.text
n=len(a$)
ssql="select * from suatabela"
set tabela= banco.openrecordset(ssql,dbopensnapshot)
listbox1.clear
do until tabela.eof
b$=tabela("nomecampo")
n1=len(b$)
if n1<n then
else
if mid(a$,1,n)=mid (b$,1,n) then
listbox1.additem tabela("nomecampo")
else
endif
tabela.movenext
loop
tabela.close
endsub
Como vc pode ver a cada tecla digitada a lista será preenchida novamente...
fui...