Ich möchte vom Makro aus den Inhalt des aktiven Dokumentes manipulieren. Konkret möchte ich Leerzeichen, TABs und Zeilenumbrüche einfügen. Wie ist dies zu bewerkstelligen?
Beiträge von Adok
-
-
Na gut, selbst ist der Mann. Ich habe mir die Eigenschaften von Field per MsgBox anzeigen lassen und bin dann auf die Lösung gekommen. Hier der Code für Interessierte:
Code
Alles anzeigenFunction FindField(ByVal fieldName As String) As Integer 'This function searches for a DOCVARIABLE field with a particular name and returns its index Dim oField As Field For Each oField In ActiveDocument.Fields If oField.Code = " DOCVARIABLE " + fieldName + " \* MERGEFORMAT " Then FindField = oField.Index Exit Function End If Next 'If not found, return 0 (this is okay because the first field in the document always has index 1) End Function
-
Hat keiner eine Ahnung? Schade, denn es wäre wichtig.
-
Folgendermaßen lassen sich in Visual Basic zu einem Dokument an einer bestimmten Position (Range) Felder hinzufügen, in denen der Wert einer Dokumentenvariablen angezeigt wird:
CodetempField = ActiveDocument.Fields.Add(Range:=position, Type:="DocVariable", Text:="Name der Dokumentenvariable")
Nun würde ich gerne nach einem Feld suchen, in welchem eine bestimmte Dokumentenvariable angezeigt wird. Dazu habe ich versucht, eine Funktion zu schreiben, deren Code lautet:
Code
Alles anzeigenFunction FindField(ByVal fieldName As String) As Integer 'This function searches for a field with a particular name and returns its index Dim oField As Field For Each oField In ActiveDocument.Fields If oField.Name = fieldName Then ' *** Wie finde ich den Namen eines Feldes heraus? FindField = oField.Index Exit Function End If Next 'If not found, return 0 (this may need some improvement; what if the field index is correctly 0? In this program this 'won't matter but...) FindField = 0 End Function
Dieser Code läuft jedoch nicht, weil das Objekt "Field" keine Eigenschaft oder Methode namens "Name" hat. Welche Eigenschaft/Methode muss ich statt dessen wählen, um das Feld mit der gesuchten Dokumentenvariable zu eruieren?
-
Ich arbeite unter Windows XP.
Das Problem besteht nicht mehr, seit ich das Projekt aus Eclipse gelöscht und neu importiert habe. Wahrscheinlich hat es also gar nichts mit javac zu tun gehabt, sondern mit dem Projekt. Wenn das so ist, finde ich die Fehlermeldung aber komisch.
-
Beim Kompilieren eines Projekts aus Eclipse mit Apache Ant bekomme ich den Fehler:
[javac] java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
[javac] Exception in thread "main"Per Google habe ich herausgefunden, dass mit com/sun/tools/javac/Main der javac-Compiler gemeint ist. Möglicherweise ist irgendwo der Pfad zu diesem Compiler falsch eingestellt. Wo könnte das sein?
JAVA_HOME dürfte korrekt gesetzt sein, ich habe mit dem Befehl "set" in der Kommandozeile nachgesehen; ich werde mich aber noch ein bisschen damit spielen.
Könnte es sich bei diesem Problem vielleicht doch um etwas ganz Anderes handeln?
-
Ach ja, mein Programm funktioniert (mit der kleinen Änderung "Range.Delete" -> "Delete" - keine Ahnung, ob das überhaupt notwendig war), nur war ich zu ungeduldig. Dennoch: Komisch, warum dieses Makro auf einem Pentium IV so lange braucht.
-
-
Nun, mein Code scheint syntaktisch korrekt zu sein, allerdings terminiert er anscheinend nicht - hat jemand eine Ahnung, woran es liegen könnte?
Code
Alles anzeigenSub KillDupes() ' Lösche doppelte Tabelleneinträge prev$ = "" For i = 1 To 1500 curr$ = ActiveDocument.Tables(1).Cell(i, 1).Range If curr$ = prev$ Then ActiveDocument.Tables(1).Rows(i).Range.Delete End If prev$ = curr$ Next End Sub
Eventuell an der Zahl 1500? Die Tabelle hat nämlich etwas weniger als 1500 Zeilen (weil ich bereits ein paar Duplikate manuell gelöscht habe), und nach jeder Löschung würde die Zeilenanzahl natürlich weiter abnehmen.
-
Danke, dein Tipp war hilfreich.
-
Hi,
wer kann mir ein gutes Tutorial für Visual Basic for Applications empfehlen? Ich würde gerne ein einfaches Makro für MS Word schreiben; mir ist aber nicht ganz klar, wie ich Tabelleneinträge (Zellen, Zeilen) manipulieren sowie löschen kann.
-
Da ich noch ein paar Backups habe, werde ich sie auf meinen PC spielen; vielleicht befindet sich darunter ja auch der fehlende Treiber.
-
In Mozilla Thunderbird ist als Startseite per Default "chrome://messenger/content/start.xhtml" eingestellt. Was hat man unter "chrome://" zu verstehen?
-
Zitat von mtintel
Warum schaust nicht mal im Pc nach (öffnen und schauen was drauf steht) bzw. was sagt die Systemsteuerung/ System/ und dann schauen welche geräte eingebaut sind?
Den PC zu öffnen, wäre die letzte Möglichkeit.
In der Systemsteuerung habe ich ja schon nachgesehen. Dort war ursprünglich der Audicontroller mit einem Rufzeichen markiert, um zu signalisieren, dass das Gerät nicht einsatzfähig ist.
-
Für weitere Lösungsvorschläge bin ich dankbar.
-
Interessant, wie viele Informatikstudenten noch immer Zeit in den Konsum von Computerspielen investieren...
Ich glaube, auf meiner Homepage unter "About Me" sind meine Lieblingsspiele gelistet - aber inzwischen haben sich meine Interessen doch auf ernsthaftere Dinge verlagert.
-
Besten Dank! Das Programm Everest hat meinen Audiocontroller als SiS 7018 identifiziert. Ich habe daraufhin einen passenden Treiber heruntergeladen und installiert. Jedoch erscheint in der Systemsteuerung die Fehlermeldung:
ZitatDas Gerät kann nicht gestartet werden. (Code 10)
Klicken Sie auf "Problembehandlung", um die Problembehandlung für dieses Gerät zu starten.
Laut Systemsteuerung befindet sich das Gerät übrigens an der Stelle "PCI-Bus 0, Gerät 2, Funktion 7".
-
Seit einiger Zeit funktioniert bei mir die Soundkarte nicht mehr; anscheinend kam es bei Systeminstallations-Spielereien zu einer Deaktivierung oder Löschung der Treiber. Ich benutze Windows XP. Die Soundkarte wird durch Plug-and-Play leider nicht automatisch erkannt, und da ich die Benutzerhandbücher für diesen PC entweder nicht mehr habe oder zumindest nicht mehr finden kann, weiß ich nicht, um welches Modell es sich handelt. Wer kennt einen Weg herauszufinden, um welche Soundkarte es sich handelt, damit ich den richtigen Treiber herunterladen und installieren kann? Muss ich dazu die Hülle meines PC aufschrauben und nachsehen, oder gibt es auch eine Softwarelösung?
-
Wir hatten in unserer Schulklasse zuerst ein NES und später ein SNES stehen. In den Pausen lieferten wir einander Schlachten in Super Bomberman, Super Mario Kart und Volleyball. Das war vor allem in der 4. bis 8. Klasse AHS, wenn ich mich richtig erinnere. Was waren das für Zeiten - es kommt mir vor wie in einem anderen Leben...
-