前回、PDFのファイルパスの一覧から、直接PDFを印刷する方法を解説しました。
今回は、フォルダー内にあるファイルのパス一覧を作成するコードを作ります。
フォルダー内が常に整理されていてい、必要なファイルだけが存在するのが理想ですが、仕事をしているとなかなかそうはいきません。
すぐにぐちゃぐちゃになってしまいます。
整理整頓などできずに、ワードやエクセルと、いろいろな形式のファイルが混在するものです。
〇やりたいこと
VBAでファイルを操作したい時などは、ファイルパスが分かれば、開く、処理、閉じるといったコードを書くことができます。
ですが、ファイルがたくさんある場合、一つ、一つ、そのファイルパスをいちいち調べるのは大変です。
なので、ファイルパスの一覧を自動で作るコードを作ります。
〇ファイルパスの一覧を作るコード
これだけのコードでフォルダー内にあるファイルパスの一覧がつくられます。
一覧を作りたいフォルダーのパスはフォルダーを選択し、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関数を使います。ループ処理と組み合わせることで、フォルダー内にあるファイルを順次、変数に格納していくことが可能です。
ワイルドカードの位置や、拡張子を変えると、すきなファイル形式の一覧を作ることができます。
0 件のコメント:
コメントを投稿