ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【エクセル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
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