<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Deborah's Developer MindScape : CSharp, Word</title><link>http://msmvps.com/blogs/deborahk/archive/tags/CSharp/Word/default.aspx</link><description>Tags: CSharp, Word</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Bolding Text in Microsoft Word using .NET</title><link>http://msmvps.com/blogs/deborahk/archive/2009/08/31/bolding-text-in-microsoft-word-using-net.aspx</link><pubDate>Mon, 31 Aug 2009 18:42:26 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719721</guid><dc:creator>Deborah Kurata</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/deborahk/rsscomments.aspx?PostID=1719721</wfw:commentRss><comments>http://msmvps.com/blogs/deborahk/archive/2009/08/31/bolding-text-in-microsoft-word-using-net.aspx#comments</comments><description>&lt;p&gt;One of the common requirements in working with Microsoft Word from .NET is to bold some text. This is often required to draw attention to specific words within the document.&lt;/p&gt;  &lt;p&gt;This code example highlights any instances of the word &amp;quot;was&amp;quot;. It can be changed to instead highlight any word you desire.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In C#:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Add to the top of the code file      &lt;br /&gt;using Word = Microsoft.Office.Interop.Word;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Add to a subroutine      &lt;br /&gt;Word.Application Wd;       &lt;br /&gt;Word.Document doc;       &lt;br /&gt;object missingValue = Missing.Value; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Start Word and get Application object      &lt;br /&gt;Wd = new Word.Application(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Add a new document      &lt;br /&gt;doc = Wd.Documents.Add(ref missingValue,ref missingValue,&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue,ref missingValue );       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Write some text     &lt;br /&gt;Wd.Selection.TypeText(&amp;quot;Once upon a time there was a document. &amp;quot; +       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;The document was fair and fine.&amp;quot; +      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;The document was short.&amp;quot;);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Bold the specified word     &lt;br /&gt;foreach (Word.Range w in doc.Words)      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (w.Text.Trim() == &amp;quot;was&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; w.Font.Bold = 1;      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Save     &lt;br /&gt;object fileName = @&amp;quot;test1.docx&amp;quot;;      &lt;br /&gt;doc.SaveAs(ref fileName,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue, ref missingValue,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref missingValue); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Close      &lt;br /&gt;doc.Close(ref missingValue, ref missingValue, ref missingValue);       &lt;br /&gt;doc = null;       &lt;br /&gt;Wd.Quit(ref missingValue, ref missingValue, ref missingValue); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;// Clean up      &lt;br /&gt;// NOTE: When in release mode, this does the trick       &lt;br /&gt;GC.WaitForPendingFinalizers();       &lt;br /&gt;GC.Collect();       &lt;br /&gt;GC.WaitForPendingFinalizers();       &lt;br /&gt;GC.Collect() ;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In VB:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Add to the top of the code file      &lt;br /&gt;Imports Word = Microsoft.Office.Interop.Word&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Add to a subroutine      &lt;br /&gt;Dim Wd As Word.Application      &lt;br /&gt;Dim doc As Word.Document      &lt;br /&gt;      &lt;br /&gt;&amp;#39; Start Word and get Application object      &lt;br /&gt;Wd = New Word.Application &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Add a new document     &lt;br /&gt;doc = Wd.Documents.Add&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Write some text     &lt;br /&gt;Wd.Selection.TypeText(&amp;quot;Once upon a time there was a document. &amp;quot; &amp;amp; _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;The document was fair and fine.&amp;quot; &amp;amp; _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;The document was short.&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; &lt;/font&gt;Bold the specified word      &lt;br /&gt;&lt;/font&gt;&lt;font color="#65402e" face="Consolas"&gt;For Each w As Word.Range In doc.Words     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If (w.Text.Trim() = &amp;quot;was&amp;quot;) Then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; w.Font.Bold = 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If      &lt;br /&gt;Next &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Save     &lt;br /&gt;doc.SaveAs(&amp;quot;test1.docx&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Close     &lt;br /&gt;doc.Close()      &lt;br /&gt;doc = Nothing      &lt;br /&gt;Wd.Quit() &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#65402e" face="Consolas"&gt;&amp;#39; Clean up     &lt;br /&gt;&amp;#39; NOTE: When in release mode, this does the trick      &lt;br /&gt;GC.WaitForPendingFinalizers()      &lt;br /&gt;GC.Collect()      &lt;br /&gt;GC.WaitForPendingFinalizers()      &lt;br /&gt;GC.Collect()&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In both of these examples, the code starts Word, creates a new Word document, and writes some text into the document. It then loops through the words in the document and bolds any that match &amp;quot;was&amp;quot;. You can, of course, change this to any word.&lt;/p&gt;  &lt;p&gt;The code then saves the document. Since no directory was found, it defaults to the My Document folder.&lt;/p&gt;  &lt;p&gt;Notice the &lt;strong&gt;missingValue&lt;/strong&gt; variable in the C# code that is not in the VB code. VB supports default parameters, but C# does not. So any time a parameter is defined for a Word method, C# must provide it. VB will use the default parameter values.&lt;/p&gt;  &lt;p&gt;NOTE: A new feature in C# 4.0 (Visual Studio 2010) allows for default parameters in C# as well, dramatically simplifying the C# code that interacts with Word or Excel.&lt;/p&gt;  &lt;p&gt;Enjoy! &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719721" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/deborahk/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/deborahk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/deborahk/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/deborahk/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/deborahk/archive/tags/Word/default.aspx">Word</category></item></channel></rss>