マクロ超初心者です!教えて下さい。
下記のコードだと、セルA5以降にファイル名一覧が出力されるんですが、ファイル名ではなくファイルのフルパスが出力されるようにしたいです。
どこをどう変更すればいいか、教えてください。ネットでも色々調べて、コード書き換えたりしたんですが全然上手くいかず…
よろしくお願いします。

Sub フォルダを指定してファイル名一覧を作成する()
 Dim dlg As FileDialog
 Dim fol_path As String 'フォルダのフルパス
 Dim f_name As String 'ファイル名
 Dim i As Long 'ファイル名を出力する行番号
 Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
 If dlg.Show = False Then Exit Sub 'キャンセル時 
 fol_path = dlg.SelectedItems(1) 'フォルダのフルパスを格納
 f_name = Dir(fol_path & "\*") 'フォルダ内の一つ目のファイル名を取得
 If f_name = "" Then
  MsgBox fol_path & " にはファイルが存在しません。"
  Exit Sub
 End If

 Worksheets.Add Before:=Sheets(1)
 Range("A1").Value = fol_path
 Range("A2").Value = "のファイル一覧"
 Range("A4").Value = "ファイル名"

 'A5セルから下にファイル名を書き出し
 i = 5
 Do Until f_name = ""
  Cells(i, "A").Value = f_name
  i = i + 1
  '次のファイル名を取得
  f_name = Dir
 Loop

 MsgBox Sheets(1).Name & "にファイル名一覧を作成しました。"
End Sub

A 回答 (1件)

こんにちは



>ファイルのフルパスが出力されるようにしたいです
変数fol_pathにフォルダのパスが入っている(A1セルに表示)ので、ファイル名( f_name )をセルに代入する代わりに、
 fol_path & "\" & f_name
を代入してゆけばよいですが、やたらと同じフォルダパスが並ぶことになりますけど・・・

単純にフォルダのパスと連結すればよいだけなので、現状の結果に対して、例えばB5セルに
 =$A$1 & "\" & A5
の関数式を代入して、下方にオートフィルしても、B列にフルパスが表示されます。
    • good
    • 0
この回答へのお礼

ありがとうございます!
うまく出来ましたー♪

お礼日時:2017/11/16 00:21

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング