Word Macro Paragraph Style - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Word Macro Paragraph Style

anup_kamatanup_kamat Posts: 2Member
Hello All,

I have text having some particular style in a page while using Macro. The word document has about 90 pages. The text having style starts from 9th page. So I reach 9th page and read the first text having the style and set it as header.There are some more text's having same style on same page.

My problem is that I want to jump to next page to select the first text having style and set as header while ignoring other text's that follow, on the same page. Is there a solution by using Paragraph? As curently it sets all the text's of the same page as header.

Here is my function below:

Function setCIHeader()

Dim doc As Document
Dim objParagraph As Paragraph

'Dim pgno As Integer
Set doc = Documents.Open(ActiveDocument.path & "cumindex.chrono.en.doc")
doc.Activate

Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, count:=10

pgno = getActualCurrentPageNo
'Dim n As Integer
n = 8

Do While pgno < n
pgno = getActualCurrentPageNo
goToNextPage
Loop

'Do While pgno >= 8
'Loop

'For Each itm In doc.ActiveWindow.Application.ActiveDocument.Paragr aphs
For Each objParagraph In ActiveDocument.Paragraphs
'goToNextPage

With objParagraph
If objParagraph.style = "Chrono.conclusionyear" Then
'MsgBox (objParagraph.style)

.Range.Select
'goToPreviousPage
Selection.MoveUp Unit:=wdLine, count:=1
'Selection.InsertBreak Type:=wdSectionBreakContinuous
'Selection.MoveDown Unit:=wdLine, count:=1
'goToNextPage
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _
LinkToPrevious
'Selection.WholeStory
'Selection.delete Unit:=wdCharacter, count:=1
Selection.MoveDown Unit:=wdScreen, count:=1
MsgBox (Trim(objParagraph.Range.text))
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.InsertAfter (vbLf)
Selection.TypeText text:=Trim(objParagraph.Range.text)
'Selection.MoveDown Unit:=wdScreen, count:=1
'Selection.MoveDown Unit:=wdLine, count:=10
'ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
'Selection.MoveDown Unit:=wdLine, count:=3
'n = getActualCurrentPageNo + 1
ActiveWindow.ActivePane.View.NextHeaderFooter
Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext, count:=1
n = n + 1
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, count:=n
'Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext, count:=2
'objParagraph.style = Nothing
'Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext

'ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'If Selection.HeaderFooter.IsHeader = True Then
'Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _
'LinkToPrevious

'Else
' ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'End If

'Exit Function
End If
End With
Application.StatusBar = "Setting Header in pages...Please Wait.."
Next
doc.Close savechanges:=wdSaveChanges
Application.StatusBar = "Done..."
'Loop ''New R&D

End Function

Thanks in advance,

Anup
Sign In or Register to comment.