このブログは広告及びアフェリエイトプログラムを使用しています。

プライバシーポリシーと免責事項



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

April 12, 2023
excel vba Mac Excel for Mac
執筆:EugeneAmnis

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

MailForm

excel vba Mac Excel for Mac

Home

Excel開発にリファレンスは必要か?

October 26, 2024
excel Excel for Mac データ入力 操作 QC KAIZEN

Mac版VBAでファイルを開く際のWindows版との違いについてGeminiに聞いてみた

October 14, 2024
AI excel Excel for Mac Mac

GeminiにExcel for Macについて聞いてみた(AppleScriptTask編)

October 9, 2024
AI excel Excel for Mac Mac