Moving from Microsoft Office VBA to AppleScript:
MacTech's Guide to Making the Transition
Introduction
|
Table of Contents
Page Prev and Page Next buttons at bottom of the page.
|
April, 2007
Page 49
full name of active workbook
end repeat
Note that when using the repeat with someVariable in someList form (which closely patterns the usual VBA loop syntax so people tend to prefer it), if you have not previously set a variable someList to the list but instead are accessing the object reference right there in the repeat statement (selected sheets of active window), you must use the explicit get to force an evaluation.
Rename a worksheet with a number index
When Excel copies a worksheet, by default it‘s named "Sheet(xxx)", where xxx is a number that increments each time a worksheet is added. To reproduce that with another name, you might be doing this in VBA:
Const sBASENAME As String = "MySheetName"
Dim ws As Worksheet
Dim sTryName As String
Dim i As Long
Worksheets.Add After:=Sheets(Sheets.Count)
On Error Resume Next
sTryName = sBASENAME
Set ws = ActiveWorkbook.Worksheets(sTryName)
Do Until ws Is Nothing
Set ws = Nothing
i = i + 1
sTryName = sBASENAME & Format(i, " (0)")
Set ws = ActiveWorkbook.Worksheets(sTryName)
Loop
ActiveSheet.Name = sTryName
On Error GoTo 0
We do a few things differently in AppleScript:
property sBASENAME : "MySheetName"
tell application "Microsoft Excel"
make new worksheet at end of active workbook
try
set sTryName to sBASENAME
set ws to worksheet sTryName of active workbook
ws -- forces an error if no such worksheet
set i to 0 -- needs to be explicit
repeat -- no need to set ws to null at end
set i to i + 1
set sTryName to sBASENAME & " (" & i & ")"
set ws to worksheet sTryName of active workbook
ws -- forces an error if no such worksheet
end repeat
on error
< Previous Page Next Page>
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine