以下のコードでファイル名一覧がだせる。しかしフォルダ名がでない
フォルダ名をだすには、どうすればいいか。
sub macro1()
Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set FS = CreateObject("Scripting.FileSystemObject")
Set Fol = FS.GetFolder(Target)
Set Fil = Fol.Files
ThisWorkbook.Sheets("Sheet1").UsedRange.Delete
'見出しを付ける
ThisWorkbook.Sheets(1).Range("B2") = "ファイル名"
ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別"
ThisWorkbook.Sheets(1).Range("D2") = "最終更新日"
ThisWorkbook.Sheets(1).Range("E2") = "説明"
ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0)
ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255)
ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter
i = 3
For Each Fx In Fil
'ファイル名
sFile = Fx.Name
'ファイル名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
'最終更新日時の書き出し
ThisWorkbook.Sheets(1).Cells(i, 3) = sFType
'最終更新日
sLMod = Fx.DateLastModified
ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod
i = i + 1
Next
End Sub
No.6ベストアンサー
- 回答日時:
下記で動きましたが。
Target = CurDir
Set bk = appexcel.Workbooks.Open(CurDir & "\" & "Book7.xls")
の部分はテストしやすいように我流ですから、適当に変えてください。
エクセルを立ち上げていない
ForEachで繰り回す必要がある
など質のコードには不足しているのでは。
ーーー
ub macro1()
Target = CurDir
MsgBox CurDir
Set FS = CreateObject("Scripting.FileSystemObject")
Set Fol = FS.GetFolder(Target)
Set Fil = Fol.Subfolders
i = 1
Set appexcel = CreateObject("Excel.Application")
Set bk = appexcel.Workbooks.Open(CurDir & "\" & "Book7.xls")
For Each fx In Fil
'MsgBox fx.Name
'サブフォルダ名
sFile = fx.Name
'サブフォルダ名の書き出し
bk.Sheets(1).Cells(i, "B") = sFile
'ファイル種別
sFType = fx.Type
'最終更新日時の書き出し
bk.Sheets(1).Cells(i, "C") = sFType
'最終更新日
sLMod = fx.DateLastModified
bk.Sheets(1).Cells(i, "D") = sLMod
i = i + 1
Next
bk.Close
Set bk = Nothing
Set appexcel = Nothing
End Sub
No.5
- 回答日時:
お詫びに、コードの最後に(End Sub と Nextの間に)
Set Fil = Fol.Subfolders
For Each Fx In Fil
'サブフォルダ名
sFile = Fx.Name
'サブフォルダ名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
'最終更新日時の書き出し
ThisWorkbook.Sheets(1).Cells(i, 3) = sFType
'最終更新日
sLMod = Fx.DateLastModified
ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod
i = i + 1
Next
を入れて同じ内容をフォルダーに対して実行してみて下さい。
今、試してみました。
No.4
- 回答日時:
No2,No3です。
質問を勘違いしていました。
No1の方のアドバイス参考にしてください。
指定したディレクトリに中にあるサブフォルダの名前を取得したいのですね。
すみません。スルーしてください。
No.3
- 回答日時:
あれれ?
コードをそのままコピィして
sFile = Fx.Name
'ファイル名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
の場合 B列に Book1.xls と出たのが
sFile = Fx.Path
'ファイル名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
にしたら
C:\Windows\mydoc\Book1.xls
^^^^^^^^^^^^^^^^^
と出たのですが、この事ではなかったのでしょうか。
ちなみに、
ThisWorkbook.Sheets(1).Cells(i, 6) = Fx.Path
一行入れてもF列に出ましたが。
>このような情報はどうやったら得られますか
まぐれです。
No.2
- 回答日時:
試しにと思って
sFile = Fx.Name を
sFile = Fx.Path に変えたらパスとファイル名が出ますね。
MID関数使ってパスだけにするとかは如何でしょうか?
でもこの場合 フォルダ名は Targetでは
MsgBox Target で表示されるのはご希望のこととは違いますか。
回答どうもありがとうございます。
しかし
sFile = Fx.Name を
sFile = Fx.Path に変えたらパスとファイル名が出ますね。
とありますが実験してもフォルダ名はでてきませんが、本当にでたのでしょうか。
For Each Fx In Fil
'
sFile = Fx.Path
'名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
ということですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルで「特定の文字を含むファイルへのリンク」or「特定の文字を含むファイルの検索の実行」
Excel(エクセル)
-
エクセルでPDFリンクを大量にしたいです。
Access(アクセス)
-
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
-
4
excel VBA 特定の文字列を含むフォルダを開く方法
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
エクセルVBA セルに表示されたテキストと同じ名前のファイルを開きたい
Excel(エクセル)
-
7
エクセルにクリックすると指定したPDFを開く様に
Windows 7
-
8
VBA フォルダ名に特定の文字を含むフォルダを別フォルダにコピーするコードを教えて下さい
Visual Basic(VBA)
-
9
サブフォルダから部分一致のエクセルファイルを検索、選択して開くマクロについて
Excel(エクセル)
-
10
excel VBA Dirにて検索したフォルダのパスを取得してハイパーリンクを貼る方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フルパスから最後のディレクト...
-
windows.hがincludeされない
-
ExcelVBAでカレントディレクト...
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
ShellExecute、エクスプローラ...
-
Excel2013 FSO.getAbsolutePath...
-
fopenで別ディレクトリにファイ...
-
相対パスの指定
-
GetPrivateProfileStringでini...
-
絶対パスの絶対て英語で何でし...
-
ファイルダイアログのカレント...
-
ネットワーク上のコンピュータ...
-
パーミッションの 読み取り、書...
-
マイクラでPythonのプログラミ...
-
FTPでリモートのファイル一覧取得
-
圧縮(Zip)について
-
pythonでの日本語操作
-
MATLABのsaveでファイル名を試...
-
VBでフォルダ単位のFTP
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フルパスから最後のディレクト...
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
ExcelVBAでカレントディレクト...
-
windows.hがincludeされない
-
GetPrivateProfileStringでini...
-
マイクラでPythonのプログラミ...
-
fopenで別ディレクトリにファイ...
-
「UNCパスはサポートされません...
-
ファイルやディレクトリの存在...
-
ExcelVBA サーバーの(共有フォ...
-
C言語を用いたファイルの一括削...
-
ファイルダイアログのカレント...
-
ネットワーク上のコンピュータ...
-
セルに入力されたパスでフォル...
-
webアプリケーションでの画像フ...
-
エクセルVBAで相対パスでファイ...
-
絶対パスの絶対て英語で何でし...
-
VBでフォルダ単位のFTP
-
EXCELでダイアログボックスを開...
おすすめ情報