
Új alkalmazásunkhoz ne felejtsük el hozzáadni egy referenciát a Word-höz, mivel csak így érhetjük el annak szolgáltatásait (Project - Add reference - COM - Microsoft Word).
Miután felvettük a kapcsolatot a Word alkalmazással, létrehozunk egy üres dokumentumot, mivel csak így tudjuk használni a szinonima szótárt.
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
listBox1.Items.Clear()
Dim wa As New Word.Application()
wa.Documents.Add(m, m, m, m)
A Word program objektumától lekérjük a szinonima információt a get_SynonymInfo függvény segítségével. Első paraméterként a kérdéses szót adjuk át, másodikként a magyar nyelv kódját, feltételezve, hogy a beírt szó is magyar, és ennek szinonimáit keressük.
Dim lang As Object = Word.WdLanguageID.wdHungarian
Dim si As Word.SynonymInfo = wa.SynonymInfo(textBox1.Text, lang)
Ha a SynonymInfo által visszaadott objektum Found property-je igaz, akkor van szinonima találat.
Ha van találat, akkor egy kettős for ciklusra lesz szükségünk, hogy az összes szinonimát kiolvashassuk. Az első ciklus 1-től a talált jelentések számáig megy, amit a MeanigCount property árul el. Mivel egy szónak több jelentése is lehet, ezért van szükség a kettős ciklusra: először végigmegyünk az összes jelentésen, majd minden jelentésnél kiolvassuk a szinonimákat.
Dim ml As Array = CType(si.MeaningList, Array)
Dim i As Integer
For i = 1 To si.MeaningCount - 1
A második ciklus előtt lekérjük a SynonymInfo objektum adott csoportjának tömbjét, melynek minden egyes eleme egy-egy szinonimát tárol szövegként.
Dim o As Object = i
Dim sl As Array = CType(si.SynonymList(o), Array)
Most jöhet a második ciklus, mely végigmegy az adott szó adott jelentéséhez tartozó szinonimákon.
listBox1.Items.Add((i.ToString() + ". jelentése: " + ml.GetValue(i) + "; szinonimái:"))
Dim j As Integer
For j = 1 To sl.Length - 1
listBox1.Items.Add((ControlChars.Tab + sl.GetValue(j)))
Next j
Next i
End If
End Sub 'button1_Click