投稿者 あにす  (社会人) 投稿日時 2009/11/23 17:52:34
読んだだけで実行はしていないのですが、気付いた点を挙げていこうと思います。


3行目
Dim DD As String

変数名の意味がわかりません。SelectedDirectory等のわかりやすい名前を付けた方がいいと思います。


21行目
If TextBox1.Text.Length = 0 Then
    Return
End If

こういう無駄なネストを避ける書き方は僕好みです。


30行目でIO.SearchOption.AllDirectoriesを指定していますが、検索するフォルダによってはファイル数が多過ぎて検索に時間がかかり、アプリケーションが応答無しの状態になるかも知れません。マルチスレッド化を考えた方がいいと思います。


35~36行目
ToolStripProgressBar1.Value = (sfile + 1) / (sfile + 1) * 100
ToolStripStatusLabel1.Text = sfile + 1 & "項目"

でコントロールを操作していますが、この操作はTextBox1_TextChangedメソッドを抜けるまで反映されません。Application.DoEvents()を実行することで項目の表示が更新されるでしょう。
また、"(sfile + 1) / (sfile + 1) * 100"の計算結果は常に100になります。正しくは"1 / (sfile + 1) * 100"ではないですか?


45行目
On Error Resume Next

としていますが、Try-Catch文で例外をキャッチして、実行が失敗したことをユーザーに知らせた方がいいと思います。


51行目
Call DirListBox1_SelectedIndexChanged(sender, Nothing)

第一引数にsenderを渡していますが、イベントプロシージャの第一引数は通常イベントを発生したオブジェクトが指定されます。混乱を避けるためにも、NothingかDirListBox1を指定した方が安全だと思います。