I'm facing a problem in developing my excell addin. How do I select just one
word from a sentences in a single cell? For example:-
I like to eat fried chicken. --> This sentence is in a cell.
Right now, I just want to select word "eat" from the above sentence. Is this
posible? If posible, how do I accomplish that?
Regards,
Westman
I don't think you can. Excel doesn't allow you to access the Selected
Characters in a Cell programatically.
But don't take my word for it.
Private Sub CommandButton1_Click()
Dim StartPos As Long
Const WordToHiLite As String = "eat"
Const RangeToSearch As String = "B6"
With Range(RangeToSearch)
StartPos = InStr(1, .Value, WordToHiLite)
If StartPos = 0 Then Exit Sub
.Select
SendKeys "{F2}"
SendKeys "{LEFT " & Len(.Value) - StartPos + 1 & "}"
SendKeys "+{RIGHT " & Len(WordToHiLite) & "}"
End With
End Sub
NickHK
"Westman" <Wes...@discussions.microsoft.com> wrote in message
news:41968738-A17F-461B...@microsoft.com...
I can't get to work for me. The Macro steps execute OK, but the text
doesn't get highlighted.
(It's probably not a bad thing though, I gotta lay off the Fried
Chicken anyway).
Greg
Dim myString
Dim myPos
myString = "I like to eat fried chicken"
StrToFind = "eat"
myPos = InStr(1, myString, StrToFind, 1)
If mypos > 0 Then
MsgBox ("Found string starting at character " & mypos)
End If
End Sub
Greg
Thanks for your reply. The codes work like a charm. But I think it is useful
only when you know what word to find or grab, is it? Right now I'm developing
a thesaurus for excel and (supposedly) it can find synonym(s) for any word
that I have selected. In your codes, you have define which word should be
search for. And I dont have any clue how to modified those code to make it
get any word at any cell in Excel.
Westman
Private Sub HiLiteWord(argRange As Range, argWord As String)
Dim StartPos As Long
With argRange
StartPos = InStr(1, .Value, argWord)
If StartPos = 0 Then
MsgBox Chr(34) & argWord & Chr(34) & " was not found in cell " &
argRange.Address
Exit Sub
End If
.Select
SendKeys "{F2}"
SendKeys "{LEFT " & Len(.Value) - StartPos + 1 & "}"
SendKeys "+{RIGHT " & Len(argWord) & "}"
End With
End Sub
NickHK
"Westman" <Wes...@discussions.microsoft.com> wrote in message
news:F24D9C34-C1BA-4EEE...@microsoft.com...
Thanks again for the codes. FYI, i'm using VSTO2005 SE. So, I have to modify
the codes first before it can be used. By the way, from your code, isn't the
argument ActiveCell and Range("A1").Value) will have the same value? If yes,
when do the codes return just the selected word?
Regards,
Westman
Thanks for the reply. And yes, your example help me to some extent in the
process of getting to my goal. The codes just find a "whatever" we have
defined only. Still I appreciate your help.
Regards,
Westman
NickHK
"Westman" <Wes...@discussions.microsoft.com> wrote in message
news:B44D25BF-0CAF-47CD...@microsoft.com...
--
Regards,
Tom Ogilvy
"NickHK" <TungC...@Invalid.com> wrote in message
news:%234$ui3KXH...@TK2MSFTNGP06.phx.gbl...
Yes, that is exactly what I'm looking for. Just selecting one word only and
then called the thesaurus. I'm still working on the solution for it and I
have tried to modify the code given by Nick but still could not get the true
result. Do have any idea on how to to do this?
Regards,
Westman
To the OP:
In that case VBA will not help you, as it cannot run in Edit mode, when the
cursor is in a cell.
NickHK
"Tom Ogilvy" <twog...@msn.com> wrote in message
news:OhGmIMgX...@TK2MSFTNGP06.phx.gbl...
"it uses the last word in the cell as the initial word to display
equivalents for."
What do you mean by those phrase? Does it mean that excel start reading a
cell backward from the last to first word?
FYI, I'm bundling the thesaurus with other programs(which contains a
localization spell checker,thesaurus and .... etc-not for english languages.
This is for Office 2007). So in my situation, actually this program is very
useful for my customer especially the gov sector.
Regards,
Westman