|
MacTech Network: MacForge.net | Computer Memory | Register Domains | Printer Supplies | Cables | iPod Deals | Mac Deals | Mac Book Shelf |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
April, 2007 end ignoring end tell If Office 2008 or a later version introduces its own script menu for Excel, and you run the script from there, ignoring application responses will have no effect. It only works directed at an application other than the one running the script. So run this script from the system's script menu. Comments, though they‘re attached to cells, are elements of the sheet, not the cell (range). Inserting a comment is done using the add comment command, but it is rather different in AppleScript than in VBA: Public Sub AddComment() Dim cmt As Comment With Worksheets("Sheet1").Range("A10") Set cmt = .Comment ' Check to see if comment exists If cmt Is Nothing Then _ ' if not, add one Set cmt = .AddComment End With With cmt .Text Text:="My Comment" ' Overwrite existing comment .Visible = True .Shape.Select 'Select to allow editing End With End Sub In AppleScript: tell application "Microsoft Excel" tell range "A10" of active sheet set cmt to its Excel comment -- no error if nothing (dummy comment) set vis to visible of cmt --get any property , returns missing value if empty if vis is missing value then set cmt to add comment end if end tell
tell cmt Excel comment text text "My comment" --overwrites, but omit 'over write'! set visible to true select its shape object -- to allow editing end tell end tell In VBA, you set a variable to the putative comment, and if it's Nothing you Add one. Normally in AppleScript, you'd do the same thing by putting it in a try/error block, and if there's no value (it might require calling the variable you set to it to discover that), you would get an error, and in the on error block you'd add the comment. But the actual behavior is much stranger. Excel comments have got to be one of the weirdest objects around. When a cell does not have a comment, it still has some sort of dummy Excel comment property, which does not error. (Note that you must include the its – its Excel comment – if in a tell block targeted at the range. Otherwise it does error, even if there is a genuine comment there, and you'll never get hold of it.) However, all the properties of this dummy Excel comment return missing value. So we check for its visible property, and if that returns missing value – neither true nor false – we know we need to add a comment. We do that with the add comment command in the Excel Suite. Now we could include its comment text parameter to add the text then and there, but that would make the script rather complicated since cells with genuine comments have not been dealt with yet. So we just add comment, exactly as the VBA macro did, and handle all of them the same way after the if/end if block concludes. < Previous Page Next Page>
|
2 years of the magazine, and the all new MacTech DVD ... at 70% off! |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All contents are Copyright 1984-2008 by Xplain Corporation. All
rights reserved.