This morning I hit a test case in which, for the first time in over a year running the same Word VBA macro, a Range.Find.Execute Replace:=wdReplaceAll hung, then crashed Word 2013 (32-bit, running on Win8.1 x64). The Execute was running inside a custom Undo record, and was the first action taken inside that record.
Searching led me to this forum post by vbRichard suggesting that the empty Undo record was the problem. I edited my code to change the document after opening the record, before running Execute, and Execute now runs fine! Thanks to vbRichard, whomever you are 🙂 . I also added code to clean up the change just before closing the Undo record.
Since my use case is English, I added a zero-width joiner (“ZWJ”, ChrW(&H200D)) before the text I was processing, then deleted it at the end. I could have used any character I was confident wouldn’t appear in the input, or wouldn’t affect the function’s main task. The result is below (licensed CC-BY 4.0).
' Top of module:
Private Const U_ZWJ = &H200D
' Inside a function:
Dim r as Range
' ... code here to set r ...
Dim undos As UndoRecord
Set undos = Application.UndoRecord
undos.StartCustomRecord "90125" ' or whatever record title you like
' now r includes the ZWJ.
r.MoveStart wdCharacter, 1 ' remove the ZWJ from r
' ... code here to process r ...
r.MoveStart wdCharacter, -1 ' re-select the ZWJ
If AscW(r.Characters.first) = U_ZWJ Then 'sanity check
r.MoveEnd wdCharacter, 1 ' select only the ZWJ
Turns out it can be done! This article from Slipstick Systems shows you how to enable the Query Builder in the Advanced Find dialog box.
I was trying to search for two partial words in the Subject of my emails in Outlook 2013. Turns out the “Search” box in the folder view only finds matches at the start of a word. The Advanced Search dialog box, Advanced pane, looked promising. However, when I added multiple criteria, I think it was ORing them rather than ANDing. Not sure, but I do know that I added two separate Subject terms and not all the results had both terms in their Subject fields.
With Query Builder, each search criterion I entered was automatically added to an AND group, and the search results were what I expected. Now if only you didn’t have to tweak the registry to enable this incredibly useful feature…
I do a lot of Visual Basic for Applications (VBA) development in Microsoft Office. Any program can get stuck in an infinite loop, and when my VBA programs have it has always meant data loss. The Internet to the rescue, as of not quite a month ago!
To break VBA code execution, at least in Office 2013, hit
Ctrl+Scroll Lock. Obvious, right? 😉
Huge thanks to MSDN user povidla, who posted this solution in the MSDN forums. Povidla, if you’re reading this, please comment so I can thank you directly!
Edit I have found that, in some situations, this doesn’t work unless there is a DoEvents call to catch the Ctrl+ScrLk. If you have a loop that might be infinite, sticking a DoEvents in it is probably a good practice.
Greetings to Stack Overflow users! I keep hoping that Povidla will find this page. If you happen to know who Povidla is, please pass along a thank you from me. Regardless, thanks for reading!
Still an issue in Word 2013 — sometimes they pop up on the wrong monitor. The solution at The Spreadsheet Page works quite nicely for me! In short, you can set the UserForm.StartUpPosition, Left, and Top properties to put the form where you want it.
This GIMP path tutorial today taught me how to close a path — basic, but not the most obvious thing I’ve ever done on a computer. Though the look of GIMP has changed somewhat since the tutorial came out, at least path-closing still works the same way! (Ctrl-click the first point, in case you were wondering.)
Just ran across Kalanand’s November 2013 Log at http://kmishra.net/log/1311/log.html . A nice tutorial/reference to awk, sed, and friends. With those plus bash, there’s not much you can’t do!
PS- please let me know in the comments if this blog has too many exclamation marks! ;). I only post things I enjoy or am excited about, with possibly predictable results.
Ran across this tutorial on Microsoft Word styles today. Lots of good information in one place.