|
こんにちは。かみちゃん です。
>・ コンボボックスで条件を選択して、その条件にあったフォルダからフォルダ内 にあるCSVファイルのデータを集計する。
以下のコードは、フォーム表示時に、フォルダ一覧ょコンボボックスに取得します。
次にコンボボックスから値を選択し、コマンドボタンをクリックすることにより、
コンボボックスで選択したフォルダ内にあるCSVファイルのファイル名を表示します。
ただし、サブフォルダには対応していません。
Option Explicit
Private strStartPathName As String
Private Sub UserForm_Initialize()
Dim strPathName As String
'コンボボックスに表示したいフォルダの親フォルダを指定します。
'(例)マクロのあるブックのパスの場合
strStartPathName = ThisWorkbook.Path & "\"
'最初のフォルダ名を取得
strPathName = Dir(strStartPathName, vbDirectory)
Do While strPathName <> "" ' ループを開始します。
' 現在のフォルダと親フォルダは無視します。
If strPathName <> "." And strPathName <> ".." Then
' ビット単位の比較を行い、strPathName がフォルダかどうかを調べます。
If (GetAttr(strStartPathName & strPathName) And vbDirectory) = vbDirectory Then
Me.ComboBox1.AddItem strPathName ' フォルダであれば、それを表示します。
End If
End If
strPathName = Dir ' 次のフォルダ名を返します。
Loop
End Sub
Private Sub CommandButton1_Click()
Dim strFileName As String
strFileName = Dir(strStartPathName & Me.ComboBox1.Value & "\*.csv")
Do While strFileName <> "" ' ループを開始します。
'CSVファイル名を表示します。
MsgBox strStartPathName & Me.ComboBox1.Value & "\" & strFileName
strFileName = Dir ' 次のフォルダ名を返します。
Loop
End Sub
|
|