rot unterkringelte Worte entkringeln

Moderator: ModerationP

Re: rot unterkringelte Worte entkringeln

Beitragvon Gast » 07. Nov 2020, 11:03

Hallo,
Ehrlich, ich verstehe immer noch nicht, was du mit einem Makro erreichen willst?

Letztlich lautet die kurze Frage:
Wie schreibt man ein Wort mit VBA in ein Wörterbuch?
VG Hildegard
Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon theoS » 07. Nov 2020, 11:16

Nein, das meinte ich nicht mit meiner Verständnislosigkeit.
Wozu willst du das mit einem Makro machen?
Wenn du eines hinzufügen willst, dann ist der Dialog doch auch kein großer Aufwand.
Wenn das viele sind, ist die Methode das Ding mit einer Liste zu füllen einfacher.
Was versprichst du dir letztlich davon, das als Makro zu machen?
Andere Voraussetzungen bieten andere Lösungen.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Re: rot unterkringelte Worte entkringeln

Beitragvon Gast » 07. Nov 2020, 14:38

Hallo,
Wenn das viele sind, ist die Methode das Ding mit einer Liste zu füllen einfacher.

Stimmt m.E. nicht.
Um die Liste aus einem Text mit sehr vielen gekringelten Worten zu erstellen, muss der Code a) die Worte als Liste in ein Dokument schreiben und b) die Worte aus dem Dokument in das Wörterbuch bringen. Also 2 Schritte! Danach kann dann das Dokument weggeworfen werden.
Effizienter wäre, wenn der Code die Worte direkt in das WB schreibt statt in die Liste. Also 1 Schritt!
VG Hildegard
Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon theoS » 08. Nov 2020, 09:03

Das ist es, was ich nicht kapiere. Woher soll der Code denn wissen, dass du das eine unterrigelteWort behalten willst un das andere nicht?
Du wählst es also vorher aus. Ob du das jetzt mit der rechten oder linken Maustaste machst, ist doch egal.
Anschließend führst du eine Aktion aus, entweder die direkte Aufnahme über das Kontextmenü oder du klickst auf deine Makroschaltfläche.
Wenn du eine Liste erstellen willst, musst du die Wörter ja auch irgendwie markieren. Wenn du das dann mit allen getan hast, hast du deine Liste. Die musst du genau einmal so in die andere Datei bringen.
Die Arbeit ist immer die Liste zu erstellen, egal wie. Das nimmt dir letztlich kein Makro ab. Meines Wissens kann VBA das unterringelte nicht auslesen.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Re: rot unterkringelte Worte entkringeln

Beitragvon Gast » 09. Nov 2020, 10:48

Hallo,
Woher soll der Code denn wissen, dass du das eine unterrigelteWort behalten willst und das andere nicht?

Es handelt sich um englische Worte, z.B. VBA-Code, der in ein Dokument einkopiert wurde.
Als Selection-Range könnten dann die Worte, die ja richtig sind, in ein Wörterbuch eingelesen werden. Aber dafür fehlt mir der Code.
Meines Wissens kann VBA das unterringelte nicht auslesen.

Doch das geht mit
Code: Alles auswählen
If Not Application.CheckSpelling(Word:= "WortFürWörterbuch") then

Aber nach then geht mir die Luft weg.
VG Hildegard
Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon theoS » 09. Nov 2020, 12:38

Also, du hast recht, das geht. Ich kann dir auch eine Routine schreiben die dir jedes der Worte eineln übrig lässt, das Eintragen erfolgt aber dann wieder auf dem selben Weg.entweder über die erstellte Liste oder über das Schreiben in die Datei. Das was der Dialog macht, konnte ich im Objektmodell noch nicht entdecken.
Ich schau später nochmal.
Btw, einfacher wäre es allemal, die Rechtschreibung bei der Formatvorlage abzuschalten. Dann hast du die Gewissheit, dass dir nich evtl Variablen als korrekt im Normalen Text erkannt werden.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Re: rot unterkringelte Worte entkringeln

Beitragvon Gast » 09. Nov 2020, 16:25

Genau. Codeschnipsel sollten in einem Dokument ohnehin anders formatiert sein. Und bei der Formatvorlage kann man auch gleich die Prüfung für diese Texte abschalten. Nix Makro, weil ein Makro auch keine automatische Wortauswahl leistet.
Alles andere (sprachspezifisches Benutzerwörterbuch, Hinzufügen per rechte Maustaste, Auslassen von Textbereichen bei der Prüfung) sind in Word Standardbedienfunktionen, die kein Makro brauchen.
Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon halweg » 09. Nov 2020, 16:26

Sorry, war nicht eingeloggt. Der vorherige Beitrag war von mir.
Viele Grüße, Halweg
Office 2002, 2010; Windows 7, 10
Benutzeravatar
halweg
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 593
Registriert: 21. Okt 2010, 08:04
Wohnort: Dresden

Re: rot unterkringelte Worte entkringeln

Beitragvon theoS » 09. Nov 2020, 16:54

@halweg: Da sind wir uns aber mal sowas von einig.

Aber, es gibt Menschen, die schießen sich nun mal gerne von hinten durchs Knie ins Auge und deshalb mal ein Versuch, die Kringelschlingel mit einem Makro zu fangen und in einen Textfile zu pushen.
bei mir geht das auch ohne kryptische Chinesische Zeichen.
Code: Alles auswählen
Option Explicit

Sub gooo()
Dim spE As Range
Dim strdictFile As String, strNewDict As String, dicCustom As Dictionary
Dim z As Long, y As Long, d As Long, i As Long, zahl As Long
Dim strWert As Variant, zeile As String
Dim dd1 As Document: Set dd1 = ActiveDocument
Dim dicTS As Object, dictArr() As String

Set dicTS = CreateObject("scripting.dictionary") 'um jeden Eintrag nur einmal zu haben

 For Each spE In Selection.Range.SpellingErrors 'Das sind dann alle Unterringelten (dauert bei großer Selection)

  If dicTS.Exists(spE.Text) Then   'Element drin? nichts tun
  Else

   dicTS.Add spE.Text, i        'Element als neuen Schlüssel dazu
  End If

 Next spE
 
'### hier musst du das Dictionary auswählen das du auslesen möchtest um die Werte mit den neuen Werten zu mischen.
'ggf. gibst du hier einfach den Pfad an. Das hier ist das Aktuell aktive Benutzerwörterbuch
Set dicCustom = Application.CustomDictionaries.ActiveCustomDictionary

strdictFile = dicCustom.Path & "\" & dicCustom.Name 'baut den Pfad zusammen, hier ggf. einen fixen Pfad angeben


d = FreeFile()
Open strdictFile For Input As #d

  While Not EOF(1)
   Line Input #1, zeile
   '-->hier wird der Inhalt deines Dicts direkt zu den neuen Einträgen geschrieben
    If dicTS.Exists(zeile) Then   'Element drin? nichts tun
    Else
      dicTS.Add zeile, i        'Element als neuen Schlüssel dazu
    End If

  Wend
Close #d

'hier wird das Dictionary(Scripting) in ein Array umgeschrieben und anschließend sortiert
zahl = dicTS.Count
ReDim dictArr(zahl)
  For i = 0 To zahl - 1
   dictArr(i) = dicTS.keys()(i)
  Next i
 
'sortieren von String Array
'eindimensionale Array
'Bubble-Sortier-Verfahren
'thanks to http://www.vba-wordwelt.de/

 For z = UBound(dictArr) - 1 To LBound(dictArr) Step -1
  For y = LBound(dictArr) To z
   If LCase(dictArr(y)) > LCase(dictArr(y + 1)) Then
    strWert = dictArr(y)
    dictArr(y) = dictArr(y + 1)
    dictArr(y + 1) = strWert
   End If
  Next y
 Next z
 
'Setzen des neuen Dictionarys, sollte angepasst werden, alternativ das "alte" öffenen und überschreiben
strNewDict = "C:\Users\qmfxh3\Desktop\Experimente\test.dic"

'hier wird der Array in einen von dir bestimmten Textfile mit der Endung .dic geschrieben

d = FreeFile()

 Open strNewDict For Output As #d
  For z = 0 To UBound(dictArr)
   Print #d, dictArr(z) & vbCrLf
  Next z
 Close #d


End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Re: rot unterkringelte Worte entkringeln

Beitragvon Onkel Gast » 10. Nov 2020, 08:30

By the way, es gibt in Word sogar schon eine solche Formatvorlage: HTML Code, als Zeichenformatvorlage hat diese bereits den Haken bei "Rechtschreibung nicht prüfen" mit drin.
Gruß Onkel
Onkel Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon Gast » 11. Nov 2020, 13:26

Hallo,
danke für den Code. Ich kann ihn erst später testen.
Ich werde dann auch noch deine Bedenken überdenken.
Aber bei der FV "html Code" ist mir das Ausgegraute aufgefallen.
Ich bekomme die nicht in die Liste der Formatvorlagen wie auch, wenn da steht: Ausblenden bis zur Verwendung?
VG Hildegard
Gast
 

Re: rot unterkringelte Worte entkringeln

Beitragvon theoS » 11. Nov 2020, 16:29

Also html-Code kann ich nicht empfehlen, das ist eine Zeichenformatvorlage.
Stattdessen kannst du aber die Vorlage "Makrotext" verwenden. Die siehst du auch erst wenn du sie verwendest, aber das kannst du erreichen, indem du sie in dem Katalog suchst (Alphabetisch) und dann "nach oben" schubst und dort dann "Anzeigen". Dann hast du sie im Katalog.
#Alternativ in den Optionen beim FV-Katalog alle anzeigen anhaken.
Die Makrotextvorlage hat allerdings noch den Haken bei Rechtschreibung nicht prüfen nicht drin und wird auch erst wirksam, wenn du neuen Text einfügst. Also was schon unterringelt ist, einfachach nach dem Formatieren ausschneiden und als text wieder einfügen, dann geht das auch.
D.h. immer erst formatieren und dann einfügen.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Vorherige

Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste