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:

  1. Verwenden Sie den AppleScript-entspricht der VBA - CurPos um eine Reichweite von einigen das Dokument von position 0 zu position cursor. Anzahl der Absätze in Reichweite.
  2. 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)

Gibt es einen Grund, Sie nicht möchten, stecken Sie den Abschnittsumbruch über VBA (und vermeiden Applescript)?
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

Schreibe einen Kommentar