|
MacTech Network: MacTech Forums | MacForge.net | Computer Memory | Register Domains | Cables | iPod Deals | Mac Deals | Mac Book Shelf |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
April, 2007 -- 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>
|
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.