Thema Datum  Von Nutzer Rating
Antwort
19.03.2019 18:58:07 maomaq
NotSolved
19.03.2019 23:39:22 Gast85475
NotSolved
20.03.2019 10:00:16 maomaq
NotSolved
21.03.2019 01:17:31 Gast85475
NotSolved
21.03.2019 23:21:54 maomaq
NotSolved
Blau Liste von Wörtern um ihre Synonyme erweitern
22.03.2019 22:17:03 Gast85475
NotSolved
22.03.2019 22:39:51 Gast85475
NotSolved
22.03.2019 22:44:10 Gast85475
NotSolved

Ansicht des Beitrags:
Von:
Gast85475
Datum:
22.03.2019 22:17:03
Views:
494
Rating: Antwort:
  Ja
Thema:
Liste von Wörtern um ihre Synonyme erweitern

Wenn man nur Nomen ausgeben möchte, dann muss man eine leichte Änderung am Code vornehmen, da in meinem letzten Codeschnipsel For-Each zum Einsatz kommt, wir aber auf eine Zählschleife zugreifen müssen (wir brauchen den Index von vntMeaning für die POS, diesen haben aber wegen der For-Each-Schleife nicht) - siehe unten.

Es gäbe noch eine andere Möglichkeit das zu lösen, ich würde es aber hierbei belassen wollen. ;) Mir liegt hier gerade mehr daran, dass du erkennst, dass mitunter der verwendete Schleifen-Typ wichtig/relevant sein kann.

Option Explicit
 
Sub Test()
   
  'Verweis auf Word hinzufügen
  ' * VBA-Editor Menü 'Extras' -> 'Verweise...' -> Microsoft Word X.0 Object Library
   
  Dim objWord     As Word.Application
  Dim objSynInfo  As Word.SynonymInfo
  Dim rngCell     As Excel.Range
  Dim vntMeaning  As Variant
  Dim vntSyn      As Variant
  Dim bolFlag     As Boolean
  Dim lngOffset   As Long
  Dim i           As Long
   
  'neue Word-Instanz erstellen
  Set objWord = New Word.Application
   
  'jede Zelle in der aktuellen Auswahl einzeln behandeln
  For Each rngCell In Selection.Cells
     
    'Thesarus/Synonyme für das Wort in der Zelle suchen
    Set objSynInfo = objWord.SynonymInfo(rngCell.Text, wdGerman)
     
    'für das aktuelle Wort kann es mehrere Bedeutungen geben
    '(z.B. für 'Gut' als Substantiv -> 'Anwesen', Bauernhof, ...; oder als Adjektiv -> die gut[en] Sitten)
    lngOffset = 1
    
'    For Each vntMeaning In objSynInfo.MeaningList
    For i = 1 To objSynInfo.MeaningCount
      
      vntMeaning = objSynInfo.MeaningList(i)

      'Was haben wir für eine Bedeutungen vorliegen? - Nomen, Adverb, Verb, ...
      Select Case objSynInfo.PartOfSpeechList(i)
        Case WdPartOfSpeech.wdNoun ', WdPartOfSpeech.wdAdverb, ...
          bolFlag = True 'Flag/Schalter: EIN
        Case Else
          bolFlag = False 'Flag/Schalter: AUS
      End Select
      
      'Synonyme nur hinzufügen wenn Bedeutungs-Flag/-Schalter auf EIN steht
      If bolFlag = True Then
        'hier werden nun Synonyme unter der jeweiligen Bedeutung gesucht
        '(z.B. 'Gut' mit der Bedeutung von z.B. 'Anwesen')
        For Each vntSyn In objSynInfo.SynonymList(vntMeaning)
          'spaltenweise - in der selben Zeile -  ausgeben
          rngCell.Offset(, lngOffset).Value = vntSyn
          lngOffset = lngOffset + 1
        Next
      End If
      
    Next
     
  Next
   
  'Word-Instanz schließen
  objWord.Quit False
   
End Sub

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.03.2019 18:58:07 maomaq
NotSolved
19.03.2019 23:39:22 Gast85475
NotSolved
20.03.2019 10:00:16 maomaq
NotSolved
21.03.2019 01:17:31 Gast85475
NotSolved
21.03.2019 23:21:54 maomaq
NotSolved
Blau Liste von Wörtern um ihre Synonyme erweitern
22.03.2019 22:17:03 Gast85475
NotSolved
22.03.2019 22:39:51 Gast85475
NotSolved
22.03.2019 22:44:10 Gast85475
NotSolved