• ベストアンサー

エクセル2007VBAでフォルダ名とファイル名を

取得したいのです。 あるフォルダ内にマクロのファイルと、複数のサブフォルダ及びその中の複数ファイルがあり 添付画像の通り、サブフォルダ名とファイル名、拡張子を取得したいのです。 どのようにすれば良いでしょうか、、ご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

sub macro1()  dim FSO As Object  dim myFolder  dim myFile  dim n As Long  set FSO = createobject("Scripting.FileSystemObject")  worksheets.add  range("A1:C1") = array("Folder", "File", "Extension")  n = 2  for each myfolder In FSO.getfolder(thisworkbook.path).subfolders   cells(n, "A") = myfolder.name   if myfolder.files.count > 1 then    for each myfile in myfolder.files     cells(n, "B") = split(myfile.name, ".")(0)     cells(n, "C") = split(myfile.name, ".")(1)     n = n + 1    next   else    n = n + 1   end if  next  set FSO = nothing end sub FileSystemObjectとDirをネットで検索して、どちらも使えるように練習してみて下さい。

mayu1992
質問者

補足

お礼が遅れてすみません。 サブフォルダにファイルが1個しかないと、ファイル名を表示しなかったので下記の通り“=”を入れました。 if myfolder.files.count >= 1 then また、ファイル名に“.”が含まれると誤表示されるので、BC列のコードは書き換えました。 これからも練習に励みたいと思います。(すぐ質問しちゃいますけど。。。) ありがとうございました^^

関連するQ&A

  • ファイル名指定で、あちこちのフォルダのファイルを選択したい

    メールに画像を添付する時に、参照からその画像のフォルダを選んで、その中の画像ファイルを選択しますが、もっとダイレクトに画像ファイル名から選ぶことは出来ないのでしょうか?100人くらいの方に、1人づつ違う画像を添付して送りたいのですが、その画像があちこちにあり、また そのあちこちのフォルダのサブのサブにあったりします。なお、そのフォルダは移動したり、コピーすることは出来ません。画像のファイル名はわかっていますので、 参照→ファイル名指定→選択→添付 という感じの作業がしたいいのですが・・・。どなたかいい方法を教えていただけませんか?よろしくお願いします。

  • VBA 一つのフォルダの中のフォルダ名とファイル名

    一つのフォルダの中のフォルダ名とファイル名を取得したい場合は ************************************** Sub test() Dim MyFileName As String Dim MyFolderName As String Dim myFSO As Object Dim MyFolder As Scripting.Folder MyFolderName = "C:\" 'フォルダを取得 MyFileName = Dir(MyFolderName & "*.*") Do While MyFileName <> "" Debug.Print MyFileName MyFileName = Dir() Loop 'ファイルを取得 Set myFSO = CreateObject("Scripting.FileSystemObject") With myFSO With .GetFolder(MyFolderName) For Each MyFolder In .SubFolders Debug.Print MyFolder.Name Next End With End With Set myFSO = Nothing End Sub ************************************** の様に ファイル名・フォルダ名をそれぞれループして取得しないとダメでしょうか? もうちょっとスマートなコードはありますか?

  • エクセルVBAでフォルダー名を取得

    たとえばEドライブ(社内の共有ドライブ)の全フォルダー名(その下のすべてのサブフォルダーを含む)を取得し、ワークシートに書き出すにはどのようなコードを書けばよいのでしょうか? (フォルダー内のファイル名は不要です) よろしくお願いします。

  • Excel VBAでフォルダー・ファイル名の取得

    いつもお世話になります。 Excelで、決められたディレクトリーの下にあるフォルダー名とファイル名を取得して Excelに表示したいのですが、調べたのですがよくわかりませんですた。 決められたディレクトリーは固定で、その下には複数フォルダーがあります。 よろしくお願い致します。

  • フォルダ内のファイル名を取得する

    windows 7なのですが、フォルダ内にあるファイル名をテキストとしてすべて一括で取得する方法はないでしょうか? また、フォルダの中にさらに複数のフォルダがあっても、上の階層のフォルダからすべてファイル名を取得する方法はないでしょうか? よろしくお願いいたします。

  • VBAでのファイル操作について

    「Aフォルダ」内のファイル名が*1から始まる複数のファイルを、「Bフォルダ」のサブフォルダである「1フォルダ」に移動するマクロ、*2を「2フォルダ」へと「9フォルダ」まで繰り返すための記述方法を教えてください。

  • フォルダ内のファイルをエクセルに一覧化

    1つのフォルダ内に複数のフォルダがあり、その中に画像数百点が保存されています。 これをエクセルにファイル名のみリスト化してエクセルファイルにしたいのですが、そのようなソフトはありませんか? 内容としては… チラシのようなものを作成しているのですが、毎回エクセルで今回のデータが送られて来ます。 新商品等画像が無ければメーカーに画像を送ってもらうように頼む必要があるので、以前使った画像があるかないかをチェックする必要があります。 毎回送られてくる内容のエクセルファイルには商品のコードが載っている為、それを元に管理できないかと考えました。(今までは商品名で管理) 画像ファイルをすべてコード名+拡張子として保存します。さらに、それを今回探しているソフトでリスト化し、エクセルファイルで保存します。(この時、拡張子をはずしたファイル名で保存してもらえると最高にベストです) あとは、送られてくる内容ファイルと画像リストファイルを同時に開き、「もしコードが書かれているセルと画像リストファイルに一致するものが無ければこのセルに"なし"を表示」(こうしたいので拡張子抜きで保存したい)と言うIF文を仕込んで完成です。 考え方あってますか? こんな事がしたいので、「フォルダ内のファイルを拡張子抜きでファイル名を一覧化し、エクセルファイルで保存」出来るソフトを探しています。 御存知の方教えてください。

  • フォルダ内にあるファイル名を取得するVBA

    エクセル2010を使用しています。 VBA(マクロ)で以下の作業を実行したいと考えていますが、 初心者につき、ご教示いただけますでしょうか。 「マクロ」ファイルにある「実行」Sheetというにある「実行」ボタンで L2に入力したパス内にあるファイル(.xlsや.xlsmや.xlsbが混在しますが、基本的には全てエクセルファイル)のファイル名を K8から下へ取得したいのですが・・ 参考にしたコードでは うまく動作しませんでした。 以下では、L2のパスを参照するのも組めていないため、コード内に直接パスを書き込んでいますが 実際は、パスを変動させて使いたいので、L2を参照できるようになると助かります。 ※パスは、質問用に仮置きで「パス」としています。 Sub Sample() Dim buf As String, cnt As Long Const Path As String = "パス" buf = Dir(Path & "*.*") Do While buf <> "" cnt = cnt + 8 Cells(cnt, 11) = buf buf = Dir() Loop End Sub また、このコードでは 実行ファイル自体のファイル名も取得してしまうようなので、 実行ファイル以外のファイル名を取得したいです。 ご指導のほど、よろしくお願い致します。

  • Excel VBAでのファイル名取得方法

    複数のファイルを結合するマクロを組んでいる中で、同一フォルダ内に有るファイルをDIR関数を使って名前を取得しています。DIR関数でファイル名を取得したときのファイルの順番がHDDの書き込み順番で有ることが分かりました。 過去の質問も捜してみましたが、上手く見つけることが出来ませんでした。 ファイルの作成日、もしくは、ファイル名称で順番に取得する手法はないでしょうか?Excelのシートに記載しないでマクロを動作させたいと考えております。 使用しているExcelは2003です。 皆様のお知恵を貸してください。よろしくお願いします。

  • フォルダー内にある,wordファイルのパスワードを一括削除

    お世話になります. フォルダー内に入っている複数のword2003ファイルのパスワード(すべて同一)を一括削除し,同じ名前のファイルで保存するマクロを教えてください. マクロ初心者で,すいません.フォルダーは2重構造(フォルダーの中にサブフォルダーがある)になっており,その中にwordファイルが入っています.wordのファイル名は連続の番号などはついていません.よろしくお願いします.

専門家に質問してみよう