※ ChatGPTを利用し、要約された質問です(原文:(VBA)フォルダー内のファイルを自動で読み込む)
(VBA)フォルダー内のファイルを自動で読み込む
このQ&Aのポイント
VBAを使用して指定したフォルダー内のテキストファイルとMP3ファイルを自動で読み込む方法について質問です。
ターゲットフォルダーを選択し、その中に存在するテキストファイルとMP3ファイルを1つずつ読み込むVBAの改造方法について教えてください。
フォルダー内のファイルを自動で読み込むために、VBAを使用して指定したフォルダー内のテキストファイルとMP3ファイルを取得する方法について教えてください。
以下でターゲットフォルダーを指定して
その中に存在する、テキストファイル(.txt)とMP3ファイル(.mp3)を
各1個ずつをそれぞれ読み込むようにしています。
'フォルダーを一覧から選択 (自由に選べること)
MsgBox "ターゲットフォルダーを選択してください。", vbOKOnly + vbQuestion, "Making"
With Application.FileDialog(msoFileDialogFolderPicker)
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
If Len(.SelectedItems(1)) = 3 Then ' c:\の場合とサブフォルダーの場合
TurgetFolder = .SelectedItems(1)
Else
TurgetFolder = .SelectedItems(1) & "\"
End If
End If
End With
'TEXTファイル選択(ダイアログ)
MsgBox "ターゲットになる" & vbCrLf & "テキストファイルを選択してください。", vbOKOnly + vbQuestion, "LIST"
ChDir TurgetFolder
TurgetTEXT = Application.GetOpenFilename("TEXTファイル(*.txt),*.txt")
If VarType(TurgetTEXT) = vbBoolean Then
MsgBox "選択がキャンセルされました"
Else
'MsgBox TurgetFile & " が選択されました"
End If
'Mp3サイズ読み込み()
MsgBox "ターゲットMP3を選択してください。", vbOKOnly + vbQuestion, "MP3"
TargetMP3 = Application.GetOpenFilename("MP3ファイル,*.mp3")
'MsgBox TargetMP3
Set fso = CreateObject("Scripting.FileSystemObject")
Set SHell = CreateObject("Shell.Application")
Set Folder = SHell.Namespace(fso.GetFile(TargetMP3).ParentFolder.Path)
Target = fso.GetFile(TargetMP3).Name
-----------------------------------------------
今回、間違いが無くなるように
フォルダー構造をターゲットフォルダーの中に
テキスト及びMP3ファイルが一つずつしかない無い構造にしたので
それぞれ別々に指定する必要なく
ターゲットフォルダーを指定するとその中に存在する
テキスト及びMP3ファイルを自動で指定(読み込む)ように改造したいのですが
どのように改造すれば良いでしょうか ?
お礼
kkkkkmさん、回答ありがとうございます。 いくつかのパターンで検証して上手くファイル名が取得できました。 お陰様で処理手数が削減出来て嬉しいです。