過去に書いた以下の記事が未だにアクセスがあるようなので、改めてここでも書いておきます。
MacBook Air (M1, 2020)でも動作するか
ひとまず、2014年の記事なので、2022年現在のわたしの環境(MacBook Air (M1, 2020))でも動作するのか試してみました。
Excelの新規ブックを立ち上げて、VBEにコードを貼り付けます。
① VBEを立ち上げる。
② VBEに以下のコードを貼り付ける
コード
Public Sub Main_Proc() MyPath = GetFilePathForMac("Excelを選んでください", " {""xls"", ""xlsx""}") ActiveSheet.Range("C9").Value = MyPath End Sub Rem Mac用にファイルパスを取得する(1つのファイル) Private Function GetFilePathForMac(mypronpt As String, myfiletype As String) As String Dim MyPath As String Dim MyScript As String Dim MyFiles As String Dim Fname As String On Error Resume Next 'ローカルファイルのパスをデフォルトのパスとする MyPath = MacScript("return (path to documents folder) as String") 'AppleScriptを設定する。 MyScript = _ "set applescript's text item delimiters to "","" " & vbNewLine & _ "set theFiles to (choose file of type " & _ myfiletype & _ "with prompt """ & mypronpt & """ default location alias """ & _ MyPath & """) as string" & vbNewLine & _ "set applescript's text item delimiters to """" " & vbNewLine & _ "return theFiles" 'AppleScriptを使用してファイルのパスを取得する。Finderが立ち上がります。 MyFiles = MacScript(MyScript) 'エラーが起きたらスルーします。 On Error GoTo 0 'ファイルのパスが取得できたら以下を処理する。 If MyFiles <> "" Then GetFilePathForMac = MyFiles Else MsgBox "ファイルが取得できませんでした" GetFilePathForMac = "" End If End Function
③ 実行してみる
コードを貼り付けたら実行してみます。ここでは、コードをsheet1の中に貼り付けていますが、どこでも大丈夫かと思います。
実行するとExcelファイルを選択する画面が現れるので、Excelファイルを選択します。
④ 取得したファイルパスを確認する
選択したExcelファイルのファイルパスがExcel上に記載されているか確認します。
2022年現在でも普通に動作する
コードをコピペして実行したところ、普通に動作しました。
AppleScriptの内容を書き換えてあげれば、ファイル名を取得する以外の処理も可能かと思います。