[[20171123192434]] 『フォルダ内のファイル名の一覧を取得したい』(たろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォルダ内のファイル名の一覧を取得したい』(たろ)

 -------------------------------------------------------------
Sub フォルダを指定してファイル名一覧を作成する()
  Dim dlg As FileDialog
  Dim fol_path As String  'フォルダのフルパス
  Dim f_name As String  'ファイル名
  Dim Path As String
    ' パスを取得
    Path = ThisWorkbook.Path
   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 & "\*.xlsx")  'フォルダ内の一つ目のファイル名を取得
   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("A1").Value = "ファイル名一覧"

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

  MsgBox Sheets(1).Name & "にファイル名一覧を作成しました。"
  Worksheets.Add after:=Worksheets(1)
  Worksheets(2).Name = "対象ファイル一覧"
End Sub
 -----------------------------------------------------------------

フォルダ内の、エクセルファイルを取得するコードです。
「対象ファイル一覧」シートを、固定シートとしてマクロボタンを作成してボタンを押すとそのシートに書きだして欲しいのですが新しくシートが作成されてしまいます。
どこを、どう修正すれば良いですか?
これを、マスターファイルにしたいのでマクロボタンを置いたシートで動作してほしいです。

< 使用 Excel:Excel2013、使用 OS:Windows8 >


4行をコメントアウトしてください
 >Worksheets.Add before:=Sheets(1)

 >MsgBox Sheets(1).Name & "にファイル名一覧を作成しました。"
 >Worksheets.Add after:=Worksheets(1)
 >Worksheets(2).Name = "対象ファイル一覧"

( マナ) 2017/11/23(木) 19:43


マナ様

早急の回答ありがとうございます。

出来ました。
(たろ) 2017/11/23(木) 19:49


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.