bei der Beantwortung von laetas Frage unten bin ich auf ein Problem gestoßen.
Wie kann ich bei angezeigten (ALT + F9) Feldfunktionen in Word, diese quasi als Text kopieren und beispielsweise hier wieder als Text reinkopieren… Also man soll die Funktionen sehen.
Wenn ich das versuche wird mir nicht die Feldfunktion eingefügt sondern das Ergebnis.In diesem Falle dann die Anrede „Sehr geehrter Herr Dr. Dünnbier“,
Ich Will aber das man IF{Anrede = „Herr“… usw. sieht.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Moin,
ich hab vielleicht noch eine tollkühne, mutige und verrückte Idee zugleich. Versuch doch mal Die Feldfunktion im Editor abzutippen, und diese dann zu kopieren. Vielleicht funktioniert es ja. Schreib wenn nicht, oder wenn doch.
Wie kann ich bei angezeigten (ALT + F9) Feldfunktionen in
Word, diese quasi als Text kopieren und beispielsweise hier
wieder als Text reinkopieren… Also man soll die Funktionen
sehen.
vorab, ginge auch Vba? In dem Fall logischerweise Word-Vba.
Mein Ziel wäre dann in der Doc kopierste das mit Strg+c.
Dann fügste es in w-w-w Strg+v ein.
Das wäre klar die einfachste Methode aber die Zwischenablage
ist teilweise nicht so einfach zu handeln wie in der Hilfe von Vba
beschrieben.
Macht mir aber nix, mir schwebt zumindest noch ein anderer Weg
vor der auch funktionieren kann.
Dein Anteil daran ist recht gering, in der Hauptsache mußt du
den Code später auf Herz und Nieren testen.
Jetzt bitte ich dich nur darum, eine Feldfunktion einfügen kann ich,
mir zu schreiben was ich da reinschreiben soll.
Falls nötig ist es für mich ein Klacks eine xls zu basteln wo
wie in deinem Beispiel ein Titel Anrede ist.
Und aus meiner doc ein sogannntes Hauptdokument zu machen.
Ausnahmsweise bitte keine fertigen Dateien schicken, hatte massig
Probleme mit Laettas Dateien. Nein, nein, sie kann da Null,
liegt sehr eindeutig an mir
So ein Mist, ich hatte mir doch fest vorgenommen mich kürzer zu
fassen *fluch*
Im Link steht alles, der Code, notwendige Infos usw.
Nachstehend ist der Code vom Link leicht gekürzt.
Gruß
Reinhard
Option Explicit
Sub FeldcodeKopieren()
'Verweis auf MS Forms 2.0... setzen!
Dim oData As Object, savEnv As Boolean, strS As String
Const myTitel As String = "Feldcode kopieren"
Const myText As String = "Es ist kein Feld markiert."
Set oData = New DataObject
If Selection.Range.Fields.Count = 0 Then
MsgBox myText, vbInformation, myTitel
Exit Sub
End If
savEnv = ActiveWindow.View.ShowFieldCodes
ActiveWindow.View.ShowFieldCodes = True
strS = Replace(Replace(Selection.Range.Text, Chr(19), Chr(123)), Chr(21), Chr(125))
oData.SetText strS
oData.PutInClipboard
ActiveWindow.View.ShowFieldCodes = savEnv
End Sub
nachstehend Code von mir.
Code listet nach Strg+v alle Feldfunktionen auf.
Getestet auf Word 2000.
Getestet mit sichtbaren Feldfunktionen (Alt+F9) und unsichtbaren
(nochmal Alt+F9).
Gruß
Reinhard
Sub tt()
Dim oData As Object, N As Integer, Formeln As String
Set oData = New DataObject
With ActiveDocument
For N = 1 To .Fields.Count
Formeln = Formeln & vbLf & .Fields(N).Code.Text
Next N
Formeln = Replace(Replace(Formeln, Chr(19), Chr(123)), Chr(21), Chr(125))
End With
oData.SetText Formeln
oData.PutInClipboard
End Sub
Moin,
es ist aber Funktion nabel. Und das ist das Hauptkriterium^^.
findest Du? ok, bleiben wir also dabei… das würde ja m. E. auch bedeuten dass ich meinen Serienbrief mit, sagen wir 1000 Adressen, auf eine Schreibmaschine tippe… das wäre genauso „Funktion nabel“, ich hofffe Du verstehst worauf ich hinaus will.
wie im obigen Bild zu erkennen, klicke auf das kleine Symbol rechts neben
der „Symbolleiste für den Schnellzugriff“. Im erscheinenden Fenster wähle dann
„weitere Befehle“ aus und das nächste Bild erscheint als Fenster.
Dort wählst du oben in dem Feld „Makro“ aus. Makros werden aufgelistet,
wähle das entsprechende aus , dann "Hinzufügen.
Wie ersichtlich kannst du im Fenster noch auswählen ob das Makro als
Symbol in der Leiste bei allen Word-dateien sichtbar ist oder nur in der grad
aktuellen doc.
Auch ob du es zusätzlich mit tastenkombination starten willst.
Wenn du das Makro hinzugefügt hast erscheint rechts unten der
Button „Ändern“. Damit kannst du dir ein Symbol aussuchen.
Fehler beim Kompilieren: benutzerdefinierter Typ nicht
definiert.
Set oData = New DataObject
der Fehler weist daraufhin daß der Verweis nicht gesetzt
wurde.
ähm? wie gesagt ich bin VBAnalphabet!
Es wird vorausgesetzt der Code steht in einem Standardmodul
der
Normal (.dotm)
yepp, ist als Modul vorhanden, die Symbolleiste habe ich auch angepasst. aber was muss ich denn tun um diesen Kompilierungsfehler zu beseitigen. Es funktioniert leider nicht.
ich habe eine Datei mal hochgeladen… ich hoffe dann wird das ersichtlich.
Fehler beim Kompilieren: benutzerdefinierter Typ nicht
definiert.
Set oData = New DataObject
der Fehler weist daraufhin daß der Verweis nicht gesetzt
wurde.
ähm? wie gesagt ich bin VBAnalphabet!
na, das passt doch, ich bin Word-DAU *grien*
Zu Verweisen. (gilt für Word, Excel u.v.m. Vba-Programmen).
Nehmen wir mal ein Beispiel. Es ist möglich in Word-Vba ein makro zu schreiben was auf Excel zugreift. Standardmäßig kennt aber Word-Vba keine Excel-Vba-Befehle.
Will man nun in Excel-Vba ein dortiges Tabellenblatt referenzieren, also ansprechen so
lautet die Codezeile in etwa so …Worksheets(„Tabelle1“)…
Das wird aber in einem Word-Makro so nicht funktionieren denn Word-Vba kennt den Begriff „Worksheet“ nicht. Also muß man wie auch im Link beschrieben im VB-Editor (Alt+F11) oben auf Extras klicken, dann auf Verweise.
Dort sucht man dann den Verweis auf Microsoft Excel X.0 Object Library, aktiviert das Häkchen. Dann klappt auch der Code.
Das X steht für die Versionsnummer, 2000 = 9.0, 2007 = 12.0 usw.
In Word-Vba ist eine Worddatei ein „Document“. Greift man nun umgekehrt mit Excel-Vba auf eine doc zu geht eine Codezeile mit z.B. …ThisDocument… genauso schief bis man dann in Word den Verweis auf Microsoft Word X.0 Object Library setzt.
In dem Code um den es geht kennt Word-Vba „DataObject“ nicht. Analog zum eben gesagten muß man da den Verweis auf Microsoft Forms 2.0 Object Library setzen.
Bei diesem speziellen Verweis kannste dir sparen in der Liste die bei Extras—Verweise nach dem Verweis zu suchen.
Gehe einfach auf Einfügen—Userform. Dadurch wird der richtige Verweis auch gesetzt.
Es wird vorausgesetzt der Code steht in einem Standardmodul
der
Normal (.dotm)
aber was muss ich denn tun um diesen
Kompilierungsfehler zu beseitigen. Es funktioniert leider
nicht.
ich habe eine Datei mal hochgeladen… ich hoffe dann wird das
ersichtlich.
Naja, von der Datei hat man nix, es ist eine .docx. da sind keine Makros drin.
.docx = doc ohne Makros, docm = doc mit Makros.
Ich kann also weder Makros überprüfen. Verweis ist nicht gesetzt.
sorry, ist ein paar Tage her. aber hier nochmal zum Thema:
Naja, von der Datei hat man nix, es ist eine .docx. da sind
keine Makros drin.
.docx = doc ohne Makros, docm = doc mit Makros.
Ich kann also weder Makros überprüfen. Verweis ist nicht
gesetzt.