性格悪い人が優勝

いつもお世話になっております。
以下のコードを実行すると指定された、フォルダの中身
をSet objOutputTextStream = objFileSys.OpenTextFile("log.txt", 2, True)
log.txtを作成してファイル名を取得し、ログファイルに出力
するコードです。

遣りたいこと

都市という親フォルダの中に 
東京
名古屋
福岡
などの各都市のフォルダがあり
各都市のフォルダの中には必ず、
精算フォルダがあります。
その精算フォルダの中身をテキストデータに出力
したいのです。



Option Explicit

Dim objFileSys
Dim objFolder
Dim objSubFolder
Dim objOutputTextStream

'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")

'ログ出力用 TextStream オブジェクトを作成
'第2引数は 1 :読み取り、2 :上書き、3 :追記。
Set objOutputTextStream = objFileSys.OpenTextFile("log.txt", 2, True)

'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("\Desktop\A")

'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得

For Each objSubFolder In objFolder.SubFolders
'ファイル名を取得し、ログファイルに出力
objOutputTextStream.WriteLine objSubFolder.Name
Next

'TextStream は Close を忘れずに
objOutputTextStream.Close

Set objOutputTextStream = Nothing
Set objSubFolder = Nothing
Set objFileSys = Nothing

「ファイル名を取得し、ログファイルに出力」の質問画像

質問者からの補足コメント

  • いつも有難うございます。早速やってみます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/09/15 14:58

A 回答 (1件)

Officeぶっ壊し中の初級者ですが。



先日確かセルに書き出す方法の回答を得たように思いましたけど、あれって勘違いでしたっけ?
FSOでならフルパスからファイル名を取得する方法も確か記憶ではあったと思いますし、なければ \ で区切った最後の要素がファイル名かと。
それをセルではなくテキストファイルに書き出すだけではないのでしょうか?

>各都市のフォルダの中には必ず、
>精算フォルダがあります。

例え精算フォルダ以外のフォルダが複数存在しようが

"任意の都市フォルダ名" を取得したらそれに "精算"フォルダ を "\" で連結しちゃえば他は無視できますし。

とここまでしかお力にはなれませんけど。(めっちゃ他力本願!)
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!