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 40
-- variable to it so we just get it once
tell findObject
set {content, content of its replacement, forward, wrap, format, ¬
match case, match whole word, match all word forms, ¬
match sounds like, match wildcards} to {"^p^p", "^p", ¬
true, find continue, false, false, false, false, false, false}
end tell
execute find findObject replace replace all
-- Find/Replace cannot delete first or last paragraph if empty, so:
set myRange to text object of paragraph 1 of active document
if content of myRange = return then delete myRange
try
set myRange to text object of paragraph -1 of active document
if content of myRange = return then delete myRange
end try
end repeat
end tell
We use a plain repeat block since we do not know how many times we'll need to run it. (If we were to use repeat while (get text object of active document does not contain return & return) or a variable set to the same thing, it does not re-evaluate each time and the repeat loop never finishes (I've tried it). Instead we re-set the textObject variable just inside the repeat loop to force a re--evaluation, and then exit repeat under that condition.
That means that we also need to run the code to delete the first and last paragraphs if they are empty inside the loop; otherwise the text range will continue to have two paragraph marks at the very end if the last paragraph is empty – forever, and you'd never get out of the repeat loop. Finally, you need a try/end try block around the code deleting the last empty paragraph since it errors when it tries to delete myRange. It actually does delete the paragraph (just a 'return') but still errors. So a simple try/error gets around that.
In the above script, just use
set textObject to (text object of selection) -- redo each time
instead of text object of active document to have the Find & Replace work on selected text rather than on a whole document.
Working with Bookmarks
There are two interesting articles on the Word MVP website, by Ibby and by Dave Rado, about working with bookmarks:
<http://www.word.mvps.org/FAQs/MacrosVBA/WorkWithBookmarks.htm>
<http://www.word.mvps.org/FAQs/MacrosVBA/InsertingTextAtBookmark.htm>
This is not the place to repeat all their helpful tips and explanations, but just to check that everything they recommend can easily be done in AppleScript too. First go to Preferences/View, and check to Show Bookmarks so you can see what‘s happening.
To insert text at (that is, after) a placeholder bookmark (one where you inserted a bookmark at an insertion point in the text):
< Previous Page Next Page>
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine