0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VBAでフォルダにあるファイルの一覧を取得する

Last updated at Posted at 2020-06-03

やりたいこと

指定したフォルダにあるすべてのファイルの名称を取得して、リストで表示します。
フォルダのパスは、ダイアログボックスのポップアップ画面でフォルダを選択することで取得します。

VBAの基本的な操作については、以下の記事を参考にしてください。
VBAでHello Worldを表示する

前提条件

  • フォルダの中にフォルダが入っている場合は、フォルダ名やフォルダの中身のファイル名は取得しません。
  • フォルダにあるすべてのファイル形式のファイルの名称を取得します。.xlsxだけではなく、.jpgなども取得します。

ソースコード

Sub GetFileName()

'FolderPath変数を宣言する
Dim FolderPath As String

'フォルダ選択のダイアログボックスのポップアップ画面を表示する
'選択したフォルダのパスを取得、変数FolderPathに代入する
If (Application.FileDialog(msoFileDialogFolderPicker).Show = True) Then
 FolderPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
End If

'カウントアップ用の変数FileCountを宣言し、1を代入する
Dim FileCount As Long
FileCount = 1

'ファイル名を格納する変数FileNameを宣言する
'Dir関数を使って、FolderPathに入っているファイル名を取得し、FileNameList変数に格納する
'Dir関数は引数に指定したファイルが存在したとき、そのファイル名を返す関数
Dim FileName As String
FileName = Dir(FolderPath)

'Do loopは、条件式を判定し、真の間だけステートメント(命令文)を繰り返し実行するステートメント
'FileNameが""(ブランク)になるまで実行し続ける
Do While FileName <> ""
 Worksheets("Sheet1").Cells(FileCount, 1).Value = FileName 'FileNameListを書き込むセルの位置を指定
 FileCount = FileCount + 1
 FileName = Dir() 'Dir関数は引数を省略すると前回の引数を引き継ぐ。Dir関数は一度戻り値として返したファイルは除外する。
Loop

End Sub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?