VBAを使用して自動的にPDFのリストを作成したい場合、適切なコードの記述方法と改善点について知ることが重要です。この記事では、PDFファイルのリスト作成に関するVBAコードを説明し、問題の解決方法と改善点を詳しく解説します。
VBAコードを使ったPDFリストの作成方法
PDFファイルのリストを作成するVBAコードでは、指定したフォルダ内にあるPDFファイルを検索し、そのファイル名、更新日、サイズ、開くリンクをExcelシートに自動で書き出します。以下はその基本的なコードです。
Sub PDFリストを作る()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim i As Long
Dim targetPath As String
Dim ws As Worksheet
'★ ここに自分のPDFフォルダの場所を入れてね!
targetPath = "C:\Users\Public\Documents\PDFs"
'--- 初期設定 ---
Set ws = ThisWorkbook.Sheets(1)
ws.Cells.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(targetPath)
i = 2
'--- 見出し(1行目) ---
ws.Cells(1, 1).Value = "ファイル名"
ws.Cells(1, 2).Value = "更新日"
ws.Cells(1, 3).Value = "サイズ(KB)"
ws.Cells(1, 4).Value = "開くリンク"
'--- PDFを探して一覧にする ---
For Each file In folder.Files
If LCase(fso.GetExtensionName(file.Name)) = "pdf" Then
ws.Cells(i, 1).Value = file.Name
ws.Cells(i, 2).Value = file.DateLastModified
ws.Cells(i, 3).Value = Round(file.Size / 1024, 1)
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 4), _
Address:=file.Path, _
TextToDisplay:="開く"
i = i + 1
End If
Next file
'--- 見た目を整える ---
ws.Columns("A:D").AutoFit
MsgBox "PDFリストができました!", vbInformation
End Sub
コードの改善点とエラーの解決方法
このコードでエラーが発生した場合、いくつかの改善点を考慮する必要があります。主に次のような問題が考えられます。
- フォルダパスの確認: 正しいフォルダパスを指定していない場合、ファイルが正しく取得できません。パスを正確に指定してください。
- シートの設定: リストを出力するシートが正しく指定されていない場合、データが書き込まれないことがあります。`Set ws = ThisWorkbook.Sheets(1)`の部分で、目的のシートを確認してください。
- ファイル拡張子の確認: PDFファイルだけを対象にする場合、`LCase(fso.GetExtensionName(file.Name)) = “pdf”`で拡張子を小文字で確認していますが、他の拡張子や無効なファイルがあると問題が発生することがあります。
改善したコード例
コードを改善するために、以下の修正点を試してみてください。
Sub PDFリストを作る()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim i As Long
Dim targetPath As String
Dim ws As Worksheet
'★ ここに自分のPDFフォルダの場所を入れてね!
targetPath = "C:\Users\Public\Documents\PDFs"
'--- 初期設定 ---
Set ws = ThisWorkbook.Sheets(1)
ws.Cells.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(targetPath)
i = 2
'--- 見出し(1行目) ---
ws.Cells(1, 1).Value = "ファイル名"
ws.Cells(1, 2).Value = "更新日"
ws.Cells(1, 3).Value = "サイズ(KB)"
ws.Cells(1, 4).Value = "開くリンク"
'--- PDFを探して一覧にする ---
For Each file In folder.Files
If LCase(fso.GetExtensionName(file.Name)) = "pdf" Then
ws.Cells(i, 1).Value = file.Name
ws.Cells(i, 2).Value = file.DateLastModified
ws.Cells(i, 3).Value = Round(file.Size / 1024, 1)
ws.Hyperlinks.Add Anchor:=ws.Cells(i, 4), _
Address:=file.Path, _
TextToDisplay:="開く"
i = i + 1
End If
Next file
'--- 見た目を整える ---
ws.Columns("A:D").AutoFit
MsgBox "PDFリストができました!", vbInformation
End Sub
まとめ
VBAを使ってPDFファイルのリストを作成する際には、フォルダパスやシート設定、ファイル拡張子の確認を行うことが重要です。上記のコード改善点を試すことで、エラーを防ぎ、正常にPDFリストを作成することができます。これで、PDFファイルの管理がさらに効率的に行えるようになるでしょう。


コメント