お世話になります。
Mac版のエクセル(2004,2011,2016)でファイルサーバーのディレクトリにあるファイルの一覧を取得したいです。
Excel for Mac 2011から Dir()関数が使えなくなり、他の方法をいろいろ試しましたがうまくいきません。
MacScript()だと2004,2011だと動くのに2016だと動かない状態です。
※MacScriptはサポート終了なのは存じ上げておりますが、現状他に方法がない状態です。
######試したこと1
以下抜粋したプログラムです。
こちらのサイトを参考にさせていただきました。
http://neos21.hatenablog.com/entry/2019/01/21/080000
vba
1MacScriptFpath = ThisWorkbook.Path 2AppleScript = AppleScript & "do shell script " & Chr(34) & "find -E '" & MacScriptFpath & "' -type f -iregex '.*.[xls|xlsx]' -maxdepth 1" & Chr(34) 3result = MacScript(AppleScript)
Findコマンドを使う以外にlsコマンドも同じように試しました。
AppleScript = "do shell script " & Chr(34) & "ls -m " & MacScriptFpath & Chr(34)
どちらもExcel 2004,2011だとファイルの一覧を取得できますが、Excel 2016だとエラーになってしまいます。
エラーコード:5 「プロシージャの呼び出し、または引数が不正です。」
######試したこと2
もう一つ試したのはこちらのプログラムです。
こちらのサイトを参考にさせていただきました。
http://chiroleen.hateblo.jp/entry/20130222/1361537144
vba
1AppleScript = "" 2AppleScript = "set aFol to " & Chr(34) & ThisWorkbook.Path & Chr(34) & Chr(13) 3AppleScript = AppleScript & "tell application " & Chr(34) & "Finder" & Chr(34) & Chr(13) 4AppleScript = AppleScript & "tell folder aFol" & Chr(13) 5AppleScript = AppleScript & "set indList to a reference to (every file whose name extension is " & Chr(34) & "xls" & Chr(34) & ") " & Chr(13) 6AppleScript = AppleScript & "end tell " & Chr(13) 7AppleScript = AppleScript & "set numList to name of indList " & Chr(13) 8AppleScript = AppleScript & "end tell " & Chr(13) 9result = MacScript(AppleScript)
こちらもExcel 2004,2011だとファイルの一覧を取得できますが、Excel 2016だとエラーになってしまいます。
エラーコード:5 「プロシージャの呼び出し、または引数が不正です。」
上記プログラムをどう修正した良いか、もしくは別の方法でファイル名一覧を取得する方法がございましたらご教授いただきたいです。
######実行環境
Excel 2016 macOS Mojave
Excel 2004,2011 MacOS X 10.6
宜しくお願いいたします。
回答2件
あなたの回答
tips
プレビュー