タイトルのテキスト
タイトルのテキスト
タイトルのテキスト
タイトルのテキスト

VBAでフォルダー内にあるPDFファイルのパス一覧を作成するマクロ

VBA

t f B! P L

 

フォルダー内にあるファイルのパス一覧を作成するコード

前回、PDFのファイルパスの一覧から、直接PDFを印刷する方法を解説しました。

今回は、フォルダー内にあるファイルのパス一覧を作成するコードを作ります。

フォルダー内が常に整理されていてい、必要なファイルだけが存在するのが理想ですが、仕事をしているとなかなかそうはいきません。

すぐにぐちゃぐちゃになってしまいます。

整理整頓などできずに、ワードやエクセルと、いろいろな形式のファイルが混在するものです。

〇やりたいこと 

フォルダーの画像

VBAでファイルを操作したい時などは、ファイルパスが分かれば、開く、処理、閉じるといったコードを書くことができます。

ですが、ファイルがたくさんある場合、一つ、一つ、そのファイルパスをいちいち調べるのは大変です。

なので、ファイルパスの一覧を自動で作るコードを作ります。

〇ファイルパスの一覧を作るコード 

ファイルパスの一覧

コード

Name = Dir("一覧を作りたいフォルダーのパス\" & "*" & ".pdf")

Do While Name <> ""

A = A + 1

Cells(A, 1).Value = "一覧を作りたいフォルダーのパス\" & Name

Name = Dir()

Loop

これだけのコードでフォルダー内にあるファイルパスの一覧がつくられます。

一覧を作りたいフォルダーのパスはフォルダーを選択し、Shiftキーを押しながら右クリックをすると、「パスのコピー」という項目がでてくるので、それでコピーすることができます。

〇コードの解説

Dir関数を使って、変数にファイルネームを格納しています。

Name = Dir("一覧を作りたいフォルダーのパス\" & "*" & ".pdf")

・変数の中身が空になるまで繰り返す指示をしています。

Do While Name <> ""

・表示する列を格納しています。

A = A + 1

・セルに、“フォルダ-パス”と“ファイルネーム”をくっつけて“ファイルパス”にしています。

Cells(A, 1).Value = "一覧を作りたいフォルダーのパス\" & Name

・次のファイルネームを格納しています

Name = Dir()

・ループ処理終了

Loop

フォルダーパスと拡張子.pdfの間にワイルドカードを指定することで、フォルダー内にある〇〇〇〇.pdfのファイルのみ検索しています。

この拡張子を、.xlsxにするとExcelファイルの一覧が、.docxにするとWordファイルの一覧をつくることができます。

拡張子を指定せずに、ワイルドカードのみにするとフォルダー内にあるファイル全ての一覧を作ることができます。

〇まとめ

VBAでファイルパスの一覧を作りたい時は、Dir関数を使います。ループ処理と組み合わせることで、フォルダー内にあるファイルを順次、変数に格納していくことが可能です。

ワイルドカードの位置や、拡張子を変えると、すきなファイル形式の一覧を作ることができます。 

koneka1208

koneka1208

自己紹介

自分の写真
エクセル好きの窓際会社員です。 エクセルの操作法や日々の会社で得た知見などを発信していきます。 よろしくお願いします。

ブログ アーカイブ

連絡フォーム

名前

メール *

メッセージ *

QooQ