見出し画像

フォルダ内のファイル名の一覧表を作成する

Webのディレクションをやる時に、リニューアル前のサイトのデータを一覧にしたり、いただいた原稿ファイルを一覧にしたり、Webサーバー上にしろ、ローカルにしろ、特定のフォルダ内のファイルを一覧表にする作業というのは、結構な頻度であるのでメモ。
※会社ではWindowsを使用してるので、Windowsでの作業を前提としている。
※会社では、ファイルサーバーにフォルダ管理されているだけで、git管理はされていない。

1.一番お手軽な方法

エクスプローラーで選択したファイルのパスを取得する方法
ファイルが多くなく、サブフォルダの中身までは不要の場合

  1. ファイル名を取得したいフォルダを開く

  2. ファイルを選択して、「shift」キーを押しながら右クリック

  3. 「パスをコピー」をクリック

  4. Excelにペースト

2.コマンドプロンプトを使う方法

  1. ファイル名を取得したいフォルダを開く

  2. アドレスバーに「cmd」と入力して、Enter

  3. コマンドプロンプト(いわゆる黒い画面)が開くので、「dir /b | clip」と入力してEnter

  4. ファイル名(フォルダ名も含む)がクリップボードにコピーされるので、Excelにペースト。

  5. コマンドプロンプトは「exit」で終了させる。

C:\Users\X\example\path> dir /b | clip
C:\Users\X\example\path> exit

<ネットワーク上の共有フォルダーの場合>

ファイル名を取得したいフォルダがネットワーク上にある場合、コマンドプロンプトはUNCパスをサポートしていないため、アドレスバーに「cmd」と入力しても、アクセスできない。
ネットワーク上の共有フォルダーをZドライブなどに割り当てて、アクセスする必要がある。

  1. ファイル名を取得したいフォルダを開く。

  2. アドレスバーに「cmd」と入力して、Enter。

  3. コマンドプロンプト(いわゆる黒い画面)が開くが、ネットワーク上の共有フォルダにはアクセスできず、「C:\Windows>」にアクセスした状態。

  4. 「pushd 」の後にファイル名を取得したいフォルダのパス(例:\\192.0.2.0\example\path)を入力してEnter。「192.0.2.0」がZドライブ等に割り当てられ、「C:\Windows>」から「Z:\example\path>」に移動する。

  5. 「dir /b | clip」と入力してEnter。

  6. ファイル名(フォルダ名も含む)がクリップボードにコピーされるので、Excelにペースト。

  7. コマンドプロンプトは「popd」でドライブの割当を解除してから、「exit」で終了させる。

C:\Windows> pushd \\192.0.2.0\example\path
Z:\example\path> dir /b | clip
Z:\example\path> popd
C:\Windows> exit

おまけメモ:
例示用に定められているIPアドレス
192.0.2.0/24
198.51.100.0/24
203.0.113.0/24

3.Excel VBAを使用する

サブフォルダも含めて一覧表を作成したい場合は、Excel VBAでマクロを作成しておくと、使い回せるのでよい。

VBAはこちらのサイトのサンプルコードを使わせていただきました。
エク短
【Excel VBA】サブフォルダを含むファイル名・パスを取得する方法!拡張子削除も対応!

サブフォルダをわかりやすくしたかったので、サブフォルダ名とパスを取得したセルは、塗りつぶしで色をつけるようにしました。
最初にセルの値をクリアする時に、塗りつぶしもクリアします。
Range("A5:B10000").Interior.ColorIndex = xlNone
の部分です。
ファイル名取得プロシージャの
Range(Cells(intIchi, 1), Cells(intIchi, 2)).Interior.Color = RGB(255,255,102)
の部分が、サブフォルダ名・パスに色を付けるコードです。
色はRGBで薄い黄色に設定しています。

Sub サブフォルダ含むファイル名取得()

Dim intIchi As Integer
Dim strFolderpass As String

intIchi = 5

strFolderpass = Range("B1").Value

Range("A5:B10000").Clear
Range("A5:B10000").Interior.ColorIndex = xlNone

Call ファイル名取得プロシージャ(strFolderpass, intIchi)

End Sub


Sub ファイル名取得プロシージャ(strFolderpass As String, intIchi As Integer)

Dim objfFSO As Object
Dim objFiles As Object
Dim objFile As Object
Dim objSubFolders As Object
Dim objSubFolder As Object


If strFolderpass = "" Then
    MsgBox "対象フォルダのパスがありません。パスを入力してください。"
Else

    Set objfFSO = CreateObject("Scripting.FileSystemObject")

    Set objFiles = objfFSO.GetFolder(strFolderpass).Files
    
    For Each objFile In objFiles
        Cells(intIchi, 1) = objFile.Name
        Cells(intIchi, 2) = objFile.Path
        intIchi = intIchi + 1
    Next objFile
    

    Set objSubFolders = objfFSO.GetFolder(strFolderpass).SubFolders

    For Each objSubFolder In objSubFolders
     
        If objSubFolder.Name <> "" Then
            Cells(intIchi, 1) = objSubFolder.Name
            Cells(intIchi, 2) = objSubFolder.Path
            Range(Cells(intIchi, 1), Cells(intIchi, 2)).Interior.Color = RGB(255, 255, 102)
            intIchi = intIchi + 1
            
            Call ファイル名取得プロシージャ(objSubFolder.Path, intIchi)
            
        End If
         
    Next objSubFolder

End If

Set objfFSO = Nothing
Set objFiles = Nothing
Set objFile = Nothing
Set objSubFolders = Nothing
Set objSubFolder = Nothing

End Sub

<VBAの編集方法>

Excelに「開発」タブが表示されていない場合は、「開発」タブを表示します。

  1. Excel上部のリボンを右クリック。

  2. 「リボンのユーザー設定」をクリック。

  3. 右の「リボンのユーザー設定」の「メインタブ」の中の「開発」にチェックを入れて、「OK」

  4. これで、「開発」タブが表示されます。

マクロを使えるファイルとして保存します。

  1. 「ファイル」>「名前を付けて保存」

  2. 「Excel マクロ有効ブック(*.xlsm)」で保存する。

Visual Basic Editorを起動します。

  1. 「開発」>「Visual Basic」をクリックして、「Visual Basic Editor」を起動。

  2. 左側のツリー表示の中の「標準モジュール」を選択。

  3. 上部の「挿入」>「標準モジュール」をクリック。

  4. 右側に新しいモジュールの編集画面が開くので、上記のコードを入力。

  5. 「F5」キーで実行して、エラーにならなかったら上書き保存。

<ボタンを付けてマクロを割り当てる>

誰かの作業が少しでも楽に進められるように、汎用的に使用できるExcelは社内で共有しているので、誰でも使いやすいように、ボタンでポチッと動かせるようにします。

「ファイル名を取得」ボタンをクリックするとマクロが動作する
  1. 「開発」をクリック。

  2. 「挿入」>「フォームコントロール」の「ボタン(フォームコントロール)」をクリック。

  3. 「+」カーソルになるので、配置したい場所に配置したい大きさでドラッグ。

  4. 「マクロの登録画面」で作成したマクロ名「サブフォルダ含むファイル名取得」が表示されるので、選択。

  5. 「マクロの保存先」は作成したExcelを選択。

  6. 「OK」をクリック。

  7. 配置されたボタンのボタン名をわかりやすく変更。
    ※ボタンを選択できない場合は、「開発」>「デザインモード」をクリックすると、選択してボタン名を変更できるようになります。

この記事が気に入ったらサポートをしてみませんか?