Nhiệm vụ này cực kỳ đơn giản với AppleScript trong Excel từ Office 2011.
(Hiện tại tôi không thể xác nhận nó hoạt động với Office 2016.)
----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2017/11/28 15:34
# dMod: 2017/11/28 15:39
# Appl: Microsoft Excel
# Task: Get the front document's container folder path & its full path.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Microsoft_Excel, @Front, @Document, @Container, @Folder, @Path, @Full, @Path
# Test: Tested only in Excel 14.7.1 (of Office 2011) on macOS 10.12.6
----------------------------------------------------------------
tell application "Microsoft Excel"
tell front document
set docContainerPathHFS to path
set docFullPath to full name
end tell
end tell
set the clipboard to docFullPath
----------------------------------------------------------------
Bạn có thể lấy đường dẫn đến thư mục chứa của tài liệu hoặc đường dẫn đầy đủ của nó.
Đây là một kỹ thuật khác sử dụng UI-Scripting hoạt động với hầu hết các ứng dụng ngay cả khi chúng KHÔNG có kịch bản. (Tôi đã thêm xử lý lỗi cho cái này.)
----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2017/11/28 15:25
# dMod: 2017/11/28 15:30
# Appl: Microsoft Excel, System Events
# Task: Copy path of frontmost Excel document to the Clipboard.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @ASObjC, @Microsoft_Excel, @System_Events, @Copy, @Path, @Frontmost, @Excel, @Document, @Clipboard
# Test: Tested only in Excel 14.7.1 (of Office 2011) on macOS 10.12.6
----------------------------------------------------------------
use AppleScript version "2.4" -- Yosemite and later
use framework "Foundation"
use scripting additions
try
tell application "System Events"
tell application process "Microsoft Excel"
tell (first window whose subrole is "AXStandardWindow")
set fileURL to value of attribute "AXDocument"
end tell
end tell
end tell
set posixPathOfFrontExcelDocument to (current application's class "NSURL"'s URLWithString:fileURL)'s |path|() as text
set the clipboard to posixPathOfFrontExcelDocument
on error e number n
set e to e & return & return & "Num: " & n
if n ≠ -128 then
try
tell application (path to frontmost application as text) to set ddButton to button returned of ¬
(display dialog e with title "ERROR!" buttons {"Copy Error Message", "Cancel", "OK"} ¬
default button "OK" giving up after 30)
if ddButton = "Copy Error Message" then set the clipboard to e
end try
end if
end try
----------------------------------------------------------------
Excel (2011) có menu script riêng, vì vậy sử dụng AppleScripts với nó khá dễ dàng.
Tôi đã nói với các sản phẩm Office 2016 không còn có menu script.
Cá nhân tôi sử dụng cả hai FastScripts và Bàn phím Maestro để khắc phục những hạn chế đó. Tôi giới hạn hầu hết các AppleScripts của mình cho FastScripts và sử dụng Bàn phím Maestro cho nhiều tác vụ tự động hóa khác.
-ccs