Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ermittlung der Absatz-Nr.

174 views
Skip to first unread message

Thomas Wiedmann

unread,
Dec 28, 2009, 3:12:40 PM12/28/09
to
Hallo,

wie kann man mit VBA ermitteln, in welchem, d. h. wievielten, Absatz sich
die Einf�gemarke befindet?

Thomas Wiedmann

Thomas Gahler

unread,
Dec 28, 2009, 4:25:52 PM12/28/09
to
Hallo Thomas


> wie kann man mit VBA ermitteln, in welchem, d. h. wievielten, Absatz sich
> die Einf�gemarke befindet?

Einen Range,der vom Anfang des Dokuments bis zum Cursor geht, definieren und
die Anzahl Abs�tze ausgeben.

Dabei musst du jedoch beachten, dass der Cursor nicht immer dort steht, wo
du eine sinnvolle Antwort bekommst oder dass der Cursor manchmal auch einen
Bereich markiert. Beides habe ich ansatzweise eingebaut.

' ---------- ---------- ---------- ---------- ----------
Option Explicit

Enum ECursor
eCursorEnd = 0
eCursorStart = 1
End Enum

Sub Demo()
MsgBox CStr(funcAbsatzNr(ePosition:=eCursorEnd))
End Sub

Public Function funcAbsatzNr( _
ePosition As ECursor) As Long

Dim rng As Word.Range

funcAbsatzNr = -999999

If Selection.StoryType = wdMainTextStory Then
Set rng = ActiveDocument.Range

Select Case ePosition
Case eCursorStart
rng.SetRange Start:=rng.Start, End:=Selection.Range.Start
Case eCursorEnd
rng.SetRange Start:=rng.Start, End:=Selection.Range.End
Case Else
End Select
funcAbsatzNr = rng.Paragraphs.Count
End If
End Function
' ---------- ---------- ---------- ---------- ----------


--
Thomas Gahler
Co-Autor von �Microsoft Word-Programmierung.
Das Handbuch� (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)


Thomas Wiedmann

unread,
Dec 30, 2009, 7:09:36 AM12/30/09
to
Klasse - herzlichen Dank; hei�t also, da� es offensichtlich keine Methode
oder Eigenschaft � la Selection.Information gibt, die so was in einem
"BuiltIn"-Statement liefert.

Thomas Wiedmann

Thomas Gahler

unread,
Dec 30, 2009, 7:29:14 AM12/30/09
to
Hallo Thomas


> hei�t also, da� es offensichtlich keine Methode oder Eigenschaft � la
> Selection.Information gibt, die so was in einem "BuiltIn"-Statement
> liefert.

Hmmm.... was soll ich jetzt schreiben. Also neutral formuliert, mir ist
keine bekannt. Doch es w�re nicht das erste Mal, dass jemand etwas
besseres/einfacheres kennt

Aber das ist ja eigentlich egal. Einmal ein sch�nes Modul mit solchen
Hilfsmitteln (oder eine Klasse) aufbauen und nutzen. Bei Bedarf kann ja der
Code innerhalb der Funktion angepasst werden. Aufruf und R�ckgabe bleibt die
gleiche und der rest ist egal.

0 new messages