Excel for Mac 用vba + applescript 呼叫 acrobat reader 開啟pdf 範例

excel 的 vba 在mac上,會有許許多多的相容性問題

這篇是用 vba + applescript 代替超連結,開啟pdf 的範例

Mac 前置作業(我是用英文版的,自行對照中文)
一、先安裝好 acrobat reader for mac
(如果要改成別的程式,請自行修改Adobe Reader.app,改成其它已安裝好的app的名稱)
二、打開finder =>go => utility => script editor
三、在script editor 裡面打入以下程式碼

'=====================================
on openpdf(filename)
tell application "Finder"
open file ((path to desktop folder as text) & filename) using ((path to applications folder as text) & "Adobe Reader.app")
end tell
end openpdf
'=====================================

三、存檔 openpdf.scpt (檔名暫訂)
四、再打開finder => go (滑鼠點一下,什麼都先不要選,選單出來就好)
五、按住鍵盤上 alt ,選單內會多一個 library ,點進去
六、找看看有沒有 "Application Scripts" 這個目錄,沒有就建一個(注意大小寫)
七、點進去 "Application Scripts" 目錄內,找看看有沒有"com.microsoft.Excel" 這個目錄,沒有就建一個(注意大小寫)
八、點進去 "com.microsoft.Excel" 目錄內,把剛剛存檔的 openpdf.scpt 放到這裡


'=======以下是vba程式範例============================
'excel for mac 前置作業
'工作表上建立一個按鈕,巨集指定 test
'
'================================================
'=======新增一個模組,加入以下的副程式============
Sub test()
Dim report, filename As String
'預設路徑mac桌面
'預設檔案,桌面上的test.pdf
filename = "test.pdf"
'如果檔案放在桌面上的目錄內(例如abc),就改成這樣'filename = "abc:test.pdf"
'注意mac路徑要用:
report = AppleScriptTask("openpdf.scpt", "openpdf", filename)

End Sub
'=========================================

openpdf.scpt for mac
附加壓縮檔: 201804/mobile01-4137a62620965b1de6667cba26202745.zip
2018-04-19 4:51 #1
謝謝S大大指點,我來試怍看看喔.....
您好,請教Excel 檔案 path and full name, close and open 在Mac上的操作請您幫忙指導下,謝謝。
brownsugar wrote:
請教Excel 檔案 path and full name, close and open 在Mac上的操作...(恕刪)


mac excel 取存 excel檔,寫法和windows 一樣,只有路徑不同
不會有pdf那些不相容的問題出現
可google pc版的excel開檔、連結、關檔、修改…等等範例參考即可


Sub test1()

MsgBox ThisWorkbook.Path
MsgBox ThisWorkbook.Name
'/Users/使用者名稱/桌面/1.xlsm
Workbooks.Open Filename:="/Users/user/Desktop/1.xlsm"
'/Users/使用者名稱/桌面/目錄/2.xlsm
Workbooks.Open Filename:="/Users/user/Desktop/abc/2.xlsm"

End Sub

Sub test2()

Dim Wb As Workbook
Set Wb = Workbooks.Open("/Users/user/Desktop/1.xlsm")
Wb.Activate
Wb.Sheets("工作表1").Cells(1, 1) = Now()
Wb.Sheets("工作表1").Columns("A:A").EntireColumn.AutoFit
MsgBox "close"
Wb.Close True
'wb.Close
Set Wb = Nothing

End Sub

限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
提醒:內容可能因過於寫實、驚悚而令人感到不舒服,是否繼續觀看?

根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結