お世話になります。指定のフォルダーではなく自分で選択したフォルダー内の"csvファイル"の総数をカウントしたいのですがうまくいきません。アドバイスお願いいたします。
With Application.FileSearch
.LookIn = Application.GetOpenFilename
.Filename = "*.csv"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & "個"
End If
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
End With
No.2ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。Wendy02 さんのものは、「フォルダ選択ダイアログ」を使っていて、ご希望
の「フォルダの選択」という動作にはピッタリだと思います。
しかし、フォルダ内に CSV ファイルがあることをダイアログで確認できる、
「GetOpenFilename メソッドを使いたい」ということでしょうか?
FileSearch オブジェクトの LookIn プロパティーには「フォルダのパス」
を設定しなければなりませんので、GetOpenFilename メソッドで得られた
「ファイルのパス」をそのまま設定することはできません。
したがって、得られた「ファイルのパス」から「フォルダのパス」を切り
出す必要があります。以下のサンプルは InStrRev 関数を使った例です。
strPATH = Application.GetOpenFilename("csvファイル (*.csv), *.csv")
If UCase$(strPATH) = "FALSE" Then
Exit Sub
End If
'InStrRev関数 - Excel2000以上で有効
'ファイル名からフォルダパスを切り出し
strPATH = Mid$(strPATH, 1, InStrRev(strPATH, "\") - 1)
With Application.FileSearch
.LookIn = strPATH
.Filename = "*.csv"
.Execute
MsgBox .FoundFiles.Count & "個"
If .FoundFiles.Count > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
End If
End With
No.1
- 回答日時:
こんばんは。
以下のようなサンプルはいかがでしょうか?
'--------------------------------
Sub myFileSearchTest()
Dim myFolder As Object
Dim myFolderItem As String
Dim Msg As String
Dim i As Long
Set myFolder = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0, "C:\")
If Not myFolder Is Nothing Then
myFolderItem = myFolder.Items.Item.Path
Else
Exit Sub
End If
With Application.FileSearch
.LookIn = myFolderItem
.FileName = "*.csv"
If .Execute > 0 Then
Msg = .FoundFiles.Count & "個"
End If
For i = 1 To .FoundFiles.Count
Msg = Msg & vbCrLf & .FoundFiles(i)
Next i
End With
Set myFolder = Nothing
MsgBox Msg
End Sub
'--------------------------------
この回答への補足
いつも回答いただきましてありがとうございます。
下記メゾットで自分でファイルを選択してファイル数をサーチする事は可能でしょうか?
OPENFILE = Application.GetOpenFilename("csvファイル (*.csv), *.csv")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
バッチファイルで指定フォルダ...
-
Excelのハイパーリンクについて...
-
【マクロ】ファイル名の日付に...
-
ツリービューを使って、エクス...
-
集めたシートのシート名を変更...
-
Debug フォルダは消していいの?
-
エクセルのマクロについて教え...
-
Javaでフォルダ複数階層のZipフ...
-
GetAttrが原因?
-
VBAにてツリー階層表示ツールの...
-
会社のネットワーク上のファイ...
-
ExcelVBAでフォルダへのハイパ...
-
ディレクトリ名変更してコピー...
-
パス名に2バイト文字(マルチバ...
-
ThisWorkbookがあるフォルダ更...
-
Excel VBA フォルダ存在チェッ...
-
Excel VBA マクロ リストボックス
-
VBSでファイル名と同じフォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
excelマクロ 冒頭3文字が一致す...
-
ディレクトリ名変更してコピー...
-
Excelのハイパーリンクについて...
-
VBA フォルダ名に特定の文字を...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
同一フォルダ内の別ブックから...
-
ExcelVBAでフォルダへのハイパ...
-
パス名に2バイト文字(マルチバ...
-
フォルダ内のPDFファイル名を変...
-
多量のファイルをフォルダに自...
-
保存先のフォルダ名を指定した...
-
Access VBA で フォルダ権限...
-
【VBS】古い日付のフォルダを削...
おすすめ情報