Wie bekomme ich die Nummer des aktuell ausgewählten Absatz in Microsoft Word in eine AppleScript-variable?
Dies ist gedacht als eine Erweiterung der ursprünglichen Frage, Die Nummer des aktuellen Absatzes? Wie kann ich es bekommen?, das ist eine schöne Aufgabe die Beantwortung der Frage für iWork Pages. http://macscripter.net/viewtopic.php?id=29125
Ich würde gerne das gleiche zu tun, in Microsoft Word. Fand ich ein VBA-Skript, das greifen kann, die Nummer (unten Lesen), aber ich weiß nicht, wie VBA-script funktioniert, also bin ich stecken geblieben (Lesen Sie auch unten)
UPDATE 17-05-2013
Gibt es zwei Lösungen für das problem. Nach der Lektüre bis auf VBA und Prüfung der code, merkte ich, wie das VBA-Skript ermittelt die Nummer des Absatzes. Es ist ganz einfach, eigentlich. Er stellt die Palette reicht vom Charakter 0 bis der cursor-position, dann zählt die Absätze in diesem Bereich.
Daher sehe ich zwei mögliche Lösungen für meine Frage:
- Verwenden Sie den AppleScript-entspricht der VBA -
CurPos
um eine Reichweite von einigen das Dokument von position 0 zu positioncursor
. Anzahl der Absätze in Reichweite. - Verwendung von VBA-Script festlegen von Absatz-Zahl zu Variablen und den Zugriff auf diese variable per AppleScript
Mein Ziel ist es zum ausführen einer Schleife über das Dokument, das findet alle Tabellen und fügt einen fortlaufenden Abschnittsumbruch vor und nach es.
Den folgenden VBA-Skript bietet einen pop-up-dialog zeigt die Daten, die ich brauche und mehr (Absatz, absolute Zeilennummer, relative Zeilennummer). Vielleicht kann mir jemand helfen, legen Sie die Ausgabe dieses Skripts, um eine Dokument-variable, auf die ich zugreifen kann per AppleScript mit
Open this Scriplet in your Editor:
get variable value of variable "paragraphNum" of active document
Hier ist das VBA-Script:
Option Explicit
Sub WhereAmI()
MsgBox "Paragraph number: " & GetParNum(Selection.Range) & vbCrLf & _
"Absolute line number: " & GetAbsoluteLineNum(Selection.Range) & vbCrLf & _
"Relative line number: " & GetLineNum(Selection.Range)
End Sub
Function GetParNum(r As Range) As Integer
Dim rParagraphs As Range
Dim CurPos As Integer
r.Select
CurPos = ActiveDocument.Bookmarks("\startOfSel").Start
Set rParagraphs = ActiveDocument.Range(Start:=0, End:=CurPos)
GetParNum = rParagraphs.Paragraphs.Count
End Function
Function GetLineNum(r As Range) As Integer
'relative to current page
GetLineNum = r.Information(wdFirstCharacterLineNumber)
End Function
Function GetAbsoluteLineNum(r As Range) As Integer
Dim i1 As Integer, i2 As Integer, Count As Integer, rTemp As Range
r.Select
Do
i1 = Selection.Information(wdFirstCharacterLineNumber)
Selection.GoTo what:=wdGoToLine, which:=wdGoToPrevious, Count:=1, Name:=""
Count = Count + 1
i2 = Selection.Information(wdFirstCharacterLineNumber)
Loop Until i1 = i2
r.Select
GetAbsoluteLineNum = Count
End Function
Wenn ich die Nummer habe, kann ich dann einen Abschnitt einfügen Pause kontinuierlichen, bevor etwas zu tun, ähnlich wie diese (die ich natürlich hätte tun müssen, wählen Sie das Letzte Zeichen des Absatzes und das erste Zeichen des nachfolgenden Absatz, aber ich brauche, um die Nummer der ersten Tabelle!):
Open this Scriplet in your Editor:
insert break at text object of selection break type section break continuous
Modell: Macbook Air 2011
AppleScript: 2.5.1 (138.1)
Browser: Firefox 20.0
Betriebssystem: Mac OS X (10.8)
Absolut! Danke für die Nachfrage. Es gibt viele Anwendungsmöglichkeiten für die Bestimmung der Nummer der Auswahl. Fast alle Funktionen in AppleScript für Wort, die sich mit der manipulation auf die text-Ebene referenzieren die Absatznummer. AppleScript ist die bevorzugte Sprache auf dem Mac, weil es viel vielseitiger ist (was bedeutet, es kann den Zugriff auf eine Vielzahl von Programmen, z.B. grabbing Daten aus MySQL, Mail, Skype, Firefox, Datei-System, usw..). VBA ist nur für Office. Wenn Sie wissen, wie man GetParNum(Auswahl.Bereich), um ein Word-variable könnte es hilfreich sein, auf die ich zugreifen kann es per AppleScript.
InformationsquelleAutor Jonathan Komar | 2013-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich mag die Beantwortung meiner eigenen Fragen, aber es wurden nur 18 Ansichten auf dieser Seite zum Zeitpunkt des Schreibens dieses und ich habe entschieden meine Frage in der Zwischenzeit.
Die Lösung basiert auf Lösung Nummer 1 aufgeführten in Frage (Reine AppleScript-Lösung)
, Um die Nummer des aktuell ausgewählten Absatz können Sie den Zugriff auf Variablen
paragraphNum
im folgenden SkriptInformationsquelleAutor Jonathan Komar