mein Ziel ist es, mit Word 2003 Liedtexte auf einer Seite so zu arrangieren, dass ich zwischen den einzelnen Textzeilen die dazugehörigen Gitarren-Akkorde eingeben kann.
Ok, dass ich dann am jeden Zeilenende Enter drücken muss und auch hinterher nix mehr am Text groß formatieren kann ist mir klar, aber geht ja leider net anders (außer mit Textfeldern).
Nun besteht das große Problem darin, dass ich die Akkorde am besten mit Tabulatoren von einander trenne, da sich Leerzeichen nicht eignen. So ist mein Ziel, dass ich die Tabulatoren so genau wie es geht an den darunter stehenden Text „anbinde“.
Dazu hatte ich mir schon mal unter Word 97 ein Makro geschrieben, welches folgendes tat:
Ich habe meine Schreibmarke in der Textzeile an die Stelle gesetzt wo genau darüber der Akkord erscheinen soll (zb bei „Im Frühtau zu Berge wir ziehn …“ hab ich den Cursor vor das „I“ von „Im“ (und später nach das „z“ bei „ziehn“) gestellt. Über „Selection.Information“ hab ich mir den Abstand zum linken Rand ausgeben lassen um anschließend in der darüberliegenden Zeile genau für diesen Wert (zb 5.45 cm) einen Tabulator zu setzen.
Leider komm ich in Word 2003 mit den Maßeinheiten nicht klar, da der irgendwie bei der „Information“ mit Punkt arbeitet während ich Tabulatoren mit cm setze. Und genau für diese Stelle bräuchte ich mal bissl Unterstützung, wie ich diesen „Information“-Wert in ordentliche *g* cm bringe. Der Rest ist dann relativ einfach.
Moin Lisa,
nein, leider half mir das nicht so viel weiter. Den Befehl zum Auslesen - den hab ich ja schon da. Nur, dass eben da ein Wert von 126 oder so da steht, ich aber den Wert „2,00 cm“ brauche. Also: wie rechne ich diesen erhaltenen Wert (hier: 126) in cm um?
Gruß Tobi@s
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
nein, nutzt mir genauso wenig. Ich hab mal getestet, egal welche Maßeinheit ich dort einstelle, kommt bei ca. 1 cm immer der ausgelesene Wert „141.50“ raus.
Hi,
ist mir nicht erklärlich. Wenn Du die Einstellung aus meinem thread vornimmst und dann FORMAT TABSTOPPS aufrufst, sollten dort die vorgegebenen Tabs in cm-Abständen aufgeführt sein. Für Dich wäre die Grundeinstellung mm wohl noch besser.
Mfg
Wilhelm
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Wilhelm,
schön dass du es noch gelesen hast …
ich versuch mal das problem noch einmal zu beschreiben, vielleicht wars bissl kompliziert das Original.
Also, ich möchte folgendes tun: ich setze meinen Cursor an eine ganz bestimmte Stelle in meinem Liedtext (dort, wo in der darüberliegenden Zeile später der Akkord hinkommen soll) und führe das Makro aus. In diesem Makro soll er über "selection.information(…) den Abstand zum linken Rand ermitteln, eine Zeile höher gehen und genau an dieser ausgelesenen Stelle einen Tabulator setzen.
Wenn ich nun bei sagen wir ca. 1 cm (in Word) den Cursor hinsetze und das Makro starte, erhalten ich (in vba) einen Wert von ca. 141 und da haut irgendwas nicht hin. Dabei ist es egal, welche Maßeinheit ich in Word unter den Optionen dort eingestellt habe (Pica, Points, mm, cm, Zoll) es erscheint immer die 141 als Ergebnis. (hab das in einem einzigen Makro getestet; Optionen umstellen, Wert auslesen usw.)
Ich weiß nicht, ob ich da irgendwie etwas in Vba umrechnen muss (kenn mich da nicht so aus) oder obs an was anderem liegt. Die Vba-Hilfe ist da nicht so ´zum weiterhelfen.
Hi,
wdHorizontalPositionRelativeToPage gibt die horizontale Position der angegebenen Markierung oder des Bereichs zurück. Dabei handelt es sich um den Abstand zwischen dem linken Rand der Markierung oder des Bereichs und dem linken Rand der Seite in Punkten (i m m e r!)
Deswegen solltest Du die Grundeinstellung in Punkten vornehmen und dann einmal folgendes versuchen:
Public Sub test()
Dim a
a = Selection.Information(wdHorizontalPositionRelativeToPage) 'Ermittelt die Position
MsgBox a
Selection.MoveUp Unit:=wdLine, Count:=1 'Geht eine Zeile nach oben
Selection.ParagraphFormat.TabStops.ClearAll 'Löscht die vorhandenen Tabs
Selection.ParagraphFormat.TabStops.Add Position:=a, Alignment:= _
wdAlignTabLeft, Leader:=wdTabLeaderSpaces 'Setzt den Tab an der ermittelten Position
End Sub
Gruß Wilhelm
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
hab mal dein Makro probiert (so hätt ich es auch geschrieben) und - es funktioniert nicht so wie es soll.
Ich habe es unter den Optionen noch einmal mit Punkt, Pica etc. probiert. Sobald ich (in Word) bei ca. 54Punkt bin und das Makro starte, zeigt er mir bei der Variable a 126 an. Und dann setzt er auch den Tab bei 126 hin - ich brauch ihn aber bei 54 (in etwa)! Wenn ich das mit Pica etc. mache, tut er das nur umrechnen, kommt aber immer noch bei 126 (wenn ich wieder auf Punkt gehe).
Gruß Tobi@s
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Guten Morgen Tobi,
bei mir funktioniert der Code mit Pkt. in der Grundeinstellung einwandfrei. Dazu, warum es bei Dir nicht läuft, fällt mir nichts mehr ein. Viel Spaß!
Gruß Wilhelm
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]