applescriptiwork

Accessing cell properties in iWork Numbers


I'm trying a access the complete reference for a cell in Applescript. So far I've managed to get the cell reference and the table reference using a script like:

tell application "Numbers"
tell document 1
repeat with i from 1 to count of sheets
tell sheet i
repeat with j from 1 to count of tables
tell table j
try
set currentCell to the first cell of the selection range
return name of currentCell
end try
end tell
end repeat
end tell
end repeat
end tell
end tell

I can't seem to get the same structure to work for getting the sheet or the document reference. I have tried accessing the properties of the cell and I get something like:

{column:column "A" of table "Table 1" of sheet "Sheet 1" of document "Untitled" of
 application "Numbers", alignment:center, value:0.0, background color:{59111, 59111, 
59111}, text color:{0, 0, 0}, font size:10.0, vertical alignment:top, name:"A1",
 class:cell, font name:"HelveticaNeue", format:automatic, row:row "1" of table "Table
 1" of sheet "Sheet 1" of document "Untitled" of application "Numbers", text 
wrap:true}

The column property of a cell therefore seems to include the complete reference but if I access the reference directly through the column property. Can anyone give me some guidance as to how I get the sheet and document using applescript.

Cheers

Ian


Solution

  • Found the solution, fairly simple as long as the code is in the right order:

    tell application "Numbers"
    tell document 1
        repeat with i from 1 to count of sheets
            tell sheet i
                repeat with j from 1 to count of tables
                    try
                        tell table j
                            set currentCell to the first cell of the selection range
                            set therow to row of currentCell
                            set sheetNumber to i
                        end tell
                    end try
                end repeat
            end tell
        end repeat
        return name of sheet sheetNumber
    end tell
    end tell
    

    Can use similar code to check for the document number