2011年1月12日水曜日

VBAでフォルダダイアログを開く

With Application.FileDialog(msoFileDialogFolderPicker)
       if .Show = True Then
           dir_path = .SelectedItems(1) & "¥"
       End if
End With

WSHで作るダイアログの方が好きなんですが
まぁ、VBAで関数あるならそれ使っとこうってことで。

これを実行すると、フォルダを選択と言うダイアログが表示され
開きたいフォルダの所まで行ってOK押したら

変数 dir_path の中にそのフォルダまでのフルパスが格納される。

フォルダの中にある(サブフォルだも含む)情報を取り出した場合は

Dim buf As String

buf = Dir(dir_path & "*.*" , vbDirectory)
Do While buf <> ""
    i = i + 1
    Worksheets("Sheet1").Cells(i , 1) = dir_path
    Worksheets("Sheet1").Cells(i , 2) = buf & "¥"
    buf = Dir()
Loop

これで、サブフォルダの情報をぶっこ抜きます。
Dir(dir_path & "*.jpg", vbDirectory)とするとJPEGファイルを取り出せる。

これ結構忘れて、いつも探しまわっちゃうのでそろそろ保管しておこう

0 件のコメント:

コメントを投稿