Solved

Add in for MS Word to function like spell or grammar checker

Posted on 2015-01-14
5
181 Views
Last Modified: 2015-01-16
I would like to write an add in for Microsoft Word that functions similarly to spell or grammar checker. It should monitor the text as it is entered. If conditions I will test for are met then it should mark the word with a squiggly/wavy underline which does not print.
0
Comment
Question by:stevenschulman
  • 3
  • 2
5 Comments
 
LVL 40
ID: 40551693
Not an easy task at all.

Word does not give you access to objects, methods or properties that would create the wiggly (the name Microsoft use for these wavy lines). Trying to create them graphically either as a picture that you imbed in the document or as some kind of overlay would also be a plain, if not possible at all, because Word does not provide you with metrics as to the position of the text on the screen.

I was curious and tried something. Simply add a hidden character in the text that would trigger a wiggly. It does not work however, because Word disregard hidden characters when evaluating the spelling of a word.

What are these conditions?

The best thing I can know of is to mark the text with the wavy underline that is available in the font properties (.Underline = wdUnderlineWavy). Then, provide your own printing button and remove these underlines or set their color to white (.UnderlineColor = wdColorWhite) before sending the document to the printer.

You might also consider doing something similar with shading. This would enable you to use color to attract the attention.

Or use animation such as .Animation = wdAnimationBlinkingBackground. Animations are not looking very nice on the screen, but they do attract the attention and do not print.
0
 

Author Comment

by:stevenschulman
ID: 40552558
Thank you very much. Do you have any suggestions about the first part of the question? That is, I want the response to happen as the user is typing, For spell checker it happens when you enter the space indicating that the word is complete. Similarly, it will automatically capitalize the first word after a period.

Is there no .net library or c# code that supports this? I am open to alternatives.

Again, thank you.
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 500 total points
ID: 40553003
Word automation has been designed to create or modify documents through code, and it provides a lot of classes to do so. But it was not designed to react to user actions.

If you look at the list of events provided by Microsoft, you can easily see that they almost all deal with global operations on the document or containers such as controls, bookmarks and XML elements.

If Microsoft does not provide the necessary event, I do not see how one could write a library that does so. Events need to be raised in the software where they happen. You cannot add one except in the original source code.

You might be better off using something else than Word for your purpose. There are a lot of text editors components available for .NET. You might want to write your application in a Windows Form or ASP application that use one of these. Most of them are costly however.
0
 

Author Closing Comment

by:stevenschulman
ID: 40554296
I suppose "no" is an answer, too. It is interesting that Microsoft can produce a spell checker and a grammar checker, but blocks the functionality from others. That doesn't make sense to me, but I guess whatever is, is.
0
 
LVL 40
ID: 40554317
They do not block the functionnality of the spell checker. You can use the spell checker itself in your own applications, at least up to Office 2003 (http://msdn.microsoft.com/en-us/library/aa537153(v=office.11).aspx).

It's the user interaction with the text, including typing, that is limited.

Do not forget that Word is an old application. VBA did not exist up to Word 6.0. It was probably written in C orginally, not in C++. So no classes. And a word processor of that scale is a very complex piece of software. They would probably have to rewrite it from scratch if they made everything accessible when they introduced automation in the middle of the 90's. So they probably decided to do it for the big pièces, but left the inner workings as they were.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
Entering time in Microsoft Access can be difficult. An input mask often bothers users more than helping them and won't catch all typing errors. This article shows how to create a textbox for 24-hour time input with full validation politely catching …
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now