Esta tarea es super simple con AppleScript en Excel de Office 2011.
(Yo no puedo actualmente confirmar que funciona con 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
----------------------------------------------------------------
Usted puede obtener la ruta de acceso al documento del contenedor de la carpeta o ruta de acceso completa.
He aquí otra técnica que utiliza la interfaz de usuario de secuencias de comandos que funciona con la mayoría de las aplicaciones, incluso si NO están de secuencias de comandos. (He añadido control de errores a este.)
----------------------------------------------------------------
# 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) tiene su propia secuencia de comandos de menú, por lo que el uso de AppleScripts con la que es muy fácil.
Me dicen que en la Oficina de 2016, los productos ya no tienen secuencia de comandos de los menús.
Personalmente yo uso ambos FastScripts y Teclado Maestro para superar tales limitaciones. Yo confinar a la mayoría de mis AppleScripts para FastScripts y usar el Teclado Maestro para muchas otras tareas de automatización.
-ccs