#Excel 2019 for Mac ファイル関連関数の挙動について
ExcelのVBAを利用されている方の大半はシート上の操作だけでなく、他のブックやCSVデータを参照したり、ファイル操作を行う事が多いと思います。前回はDir関数について書きましたが、今回はWindowsとMacではどの程度、差があるのかここで表にしてみたいと思います。
環境はMacOS Catalina , Excel2019です。
関数名 | Windows | Mac |
---|---|---|
Application.GetOpenFilename() | OK | OK |
GetOpenFilename(FileFilter:=“CSV Files (*.csv), *.csv”) | OK | NG |
FileDialog(msoFileDialogFolderPicker) | OK | NG |
Name BEFOREPATH As AFTERPATH | OK | OK |
Workbooks.Open filename:=PATH | OK | OK |
FileCopy ORIGINALPATH, COPYPATH | OK | OK |
Kill PATH | OK | OK |
Application.DefaultFilePath | OK | OK |
ThisWorkbook.path | OK | OK |
MkDir (NEWPATH) | OK | OK |
RmDir (PATH) | OK | OK |
FileDateTime(PATH) | OK | OK |
FileLen(PATH) | OK | OK |
Open PATH For Output As #1 | OK | OK* |
基本的に使用可能ではありますが、ワイルドカードのあるGetOpenFilename()とFileDialog(msoFileDialogFolderPicker)は使用できません。
ワイルドカードのあるGetOpenFilename()では以下のエラーが表示されます。
FileDialog(msoFileDialogFolderPicker)では以下のエラーが表示され、コードのチップを見てみるとNothingと表示されています。
特に気を付けなくてはならないのが、Openステートメントです。指定したパスに日本語のフォルダが入っているとエラーが発生し、ファイルの保存に失敗します。回避する為には共有フォルダに保存するかAppleScriptで実装するしかありません。
また、初めてアクセスするファイルやフォルダにはアクセス権の付与が必要になります。他のブックの参照をする際、初めて参照するブックを開く場合はアクセス権の付与ダイアログが表示され、マクロが停止します。
Workbooks.Openでは参照先がマクロブックの場合はセキュリティによって、マクロ許可ダイアログでマクロが停止します。Windows版ではマクロ許可バナーになっているので問題ありません。尚、Mac版ではマクロを個別で許可することはできません。
詳しいことはブログにも書いています。