Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

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

Posted on 2015-01-14
5
197 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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
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 member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

792 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