Excel for Macの明示的なファイル権限の取得

April 12, 2023
excel vba Mac Excel for Mac

Excel for Macの明示的なファイル権限の取得

Excel for MacではVBAで指定したファイルにはじめてアクセスした場合、権限の譲渡ダイアログが表示されます。ただし、セルにパスを記述した場合ではこのダイアログが表示されないときがあります。また画像パスの場合、VBAで記述しても表示されない場合があります。

権限のないファイルにはアクセスできないので、エラーになってしまいます。このエラーも表示されるときとされないときがあります。

その場合は以下のコードを実行して明示的に権限の譲渡ダイアログを表示させることで不具合を未然に防ぐことができます。

Sub requestFilesPermission(ByRef files() As String)
    Dim fileAccessGranted As Boolean
    Dim filePermissionCandidates

    filePermissionCandidates = files()
    fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)
End Sub

このコードは指定されたパスが権限の未譲渡だった場合のみ、ダイアログが表示されるようになっています。間違ったパスを渡してもエラーは発生しません。尚、権限譲渡は一括で行われます。

因みにアクセスファイルの親ファルダを指定しても各ファイルごとにアクセス権の譲渡確認が実行されます。

このコードやAppleScripttaskはWindowsのVBEで長いプロシージャ内に記述すると構文エラーとして認識される場合があります。その場合は別のプロシージャに分けるか以下のようなMac用の条件分岐を使用する必要があります。

#If MAC_OFFICE_VERSION >= 15 Then
    Excel2016 for Mac以降の処理
#end if

明示的な権限の取得を実施することで不明だったエラーが解消したこともあります。MacのVBAユーザーは可能な限り使った方が良いでしょう。

Next Previous

マクロ無しでシフト表作成ツールその2(使用関数説明編)

May 14, 2024
excel データ入力 操作 QC KAIZEN

マクロ無しでシフト表作成ツールその1(使用方法編)

May 14, 2024
excel データ入力 操作 QC KAIZEN

ガントチャート

May 14, 2024
excel Excel for Mac Mac ForMe FormeStudio QC KAIZEN