実現したいこと
MACでフォルダ内のPDF総数とファイル名をエクセルに転記したい(VBA使用)
発生している問題・分からないこと
ChatGPTを使って下記のコードでマクロを登録したのですがエラーが出て動かないです。
該当のソースコード
Sub ListPDFFiles() Dim folderPath As String Dim pdfCount As Long Dim fileNames As Variant Dim i As Long ' フォルダのパスを指定 folderPath = "/Users/ 〇〇〇〇/Desktop/テスト" ' ここにPDFファイルが保存されているフォルダのパスを入力してください ' フォルダパスの確認 If Right(folderPath, 1) <> "/" Then folderPath = folderPath & "/" End If ' AppleScriptでフォルダ内のPDFファイル名を取得 fileNames = Split(MacScript("tell application ""Finder"" " & _ "set theFolder to POSIX file """ & folderPath & """ as alias " & _ "set pdfFiles to every file of theFolder whose name extension is ""pdf"" " & _ "set pdfNames to name of every file of pdfFiles " & _ "return pdfNames as string " & _ "end tell"), ", ") ' PDFファイル数を取得 pdfCount = UBound(fileNames) + 1 ' 結果をエクセルシートに書き込む ThisWorkbook.Sheets(1).Cells(1, 1).Value = "PDF File Name" ThisWorkbook.Sheets(1).Cells(1, 2).Value = "Index" For i = LBound(fileNames) To UBound(fileNames) ThisWorkbook.Sheets(1).Cells(i + 2, 1).Value = fileNames(i) ThisWorkbook.Sheets(1).Cells(i + 2, 2).Value = i + 1 Next i ' 総PDFファイル数をエクセルシートに書き込む ThisWorkbook.Sheets(1).Cells(i + 3, 1).Value = "Total PDF Count" ThisWorkbook.Sheets(1).Cells(i + 3, 2).Value = pdfCount End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
よくわかりませんでした。。
補足
ここの部分でエラー起こしているようです
' AppleScriptでフォルダ内のPDFファイル名を取得
fileNames = Split(MacScript("tell application ""Finder"" " & _
"set theFolder to POSIX file """ & folderPath & """ as alias " & _
"set pdfFiles to every file of theFolder whose name extension is ""pdf"" " & _
"set pdfNames to name of every file of pdfFiles " & _
"return pdfNames as string " & _
"end tell"), ", ")
どなたかお詳しいからご教示いただけたらと思います。
よろしくお願いいたします。
https://forum.latenightsw.com/t/debugging-an-applescript-handler-in-vba/2705
https://teratail.com/help/question-tips#questionTips11
https://teratail.com/help/question-tips#questionTips12
https://teratail.com/help/question-tips#questionTips36
https://teratail.com/help/question-tips
は読みましたか?
読んだ結果を本文に反映ください。解決のヒントを探れるかもしれません。
Mac でお使いの Office のバージョンは、いくつでしょうか?
MacScript は、MacScript 関数 ( https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/macscript-function ) に「この関数は廃止され、サポートされなくなりました。 詳細については、こちらの Stack Overflow に関する記事を参照してください。」とありますので、最近のバージョンには存在しないみたいです。
コードを見た感じでは、Apple Script を実行しているようですので、 「VB を使用して AppleScript を実行する ( https://learn.microsoft.com/ja-jp/office/vba/office-mac/applescripttask ) 」に記載されているように 「AppleScriptTask」にコードを書き換えて変更する必要があると思います。
お答えいただいたのにすみません、
他のやり方でうまく行きました。
> 他のやり方でうまく行きました。
解決おめでとうございます!
解決方法をまとめて、「自己解決」として回答してください!
同じように困っている人の貴重な情報になると思います。

回答1件
あなたの回答
tips
プレビュー