【エクセルVBA】フォルダのフルパスを一括取得する方法!

f:id:yshgs_elec:20200903225500j:plain

■多くのフォルダに小分けにされたデータをひとつづづ読み込みたい。

■各フォルダにデータをひとつひとつコピーしたい。

データ処理や数値解析などを行っていると、このような状況に出くわすことは多いのではないでしょうか?

まさにその状態だ。VBAを使って自動化しようしたけれど、各フォルダのパスが取得できなくて困っている。

この記事はこのような悩みを解決するために、VBAを用いて指定したフォルダの中にある、フォルダのフルパスを一括取得する方法をご紹介します。

それでは早速やっていきましょう!

スポンサーリンク

フォルダ内にあるフォルダのフルパス取得方法

今回は以下の画像のように、あるフォルダの中に入っているフォルダのフルパスを一括取得する方法をご紹介します。

f:id:yshgs_elec:20200903222919j:plain

手順①検索フォルダの指定

まずはエクセルファイルを開きます。

今回は以下の画像のように検索されるフォルダのフルパスをあらかじめ記述しています。

今回はA4セル以降に内部のフォルダのフルパスを表示します。

f:id:yshgs_elec:20200903223139j:plain

手順②フルパス取得のコードを記述⇒実行

VBAを開き、以下のコードを記述します。

※VBAの使い方がわからない、という方は以下の記事をご覧ください。

【初心者用】エクセルマクロ(VBA)の始め方を詳細解説 – ヒガサラblog

以下が実行コードです。

Sub forder_search()
    Dim base_folder As String
    Dim sub_folder As String
    Dim i As Integer
    base_folder = Cells(2, 1)
    sub_folder = Dir(base_folder & "\", vbDirectory)
    i = 0
    Do Until sub_folder = ""
        If GetAttr(base_folder & "\" & sub_folder) = 16 Then
            If sub_folder <> "." And sub_folder <> ".." Then
                i = i + 1
                Cells(3 + i, 1) = base_folder & "\" & sub_folder
            End If
        End If
        sub_folder = Dir()
    Loop
End Sub

※ご自身のシートに応じてCells(*,*)の部分を適宜変更してください。

コードの記述が終わればあとは実行するのみ!!

以下が実行結果です。

f:id:yshgs_elec:20200904081735j:plain

きちんとすべてのフォルダのフルパスが取得できていますね。

あとはこれらのフォルダを指定して、コピーなり、データ読み込みなりを行っていけば、冒頭に記載したような処理は簡単に行うことができるでしょう。

スポンサーリンク

おわりに

というわけで今回は指定したフォルダの中に入っているフォルダのフルパスを一括取得する方法についてご紹介しました。

一度作っておくと非常に便利ですので、ぜひご活用ください。

このブログではエクセルスキルを中心に、さまざまな業務効率化スキルをご紹介しています。

■エクセルについてもっと詳しくなりたい。

■業務を効率化していきたい。

こんな人はぜひ他の記事も読んでみてください。

最後に・・・

このブログはブログ村に参加しています。

このブログを応援してくれる方は以下のボタンを押していただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

Twitterもやっていますので、興味があればフォローよろしくお願いします。

それではまた!!

関連記事

www.higashisalary.com

www.higashisalary.com

コメント

タイトルとURLをコピーしました