|
-
Mar 13th, 2006, 01:06 AM
#1
Thread Starter
New Member
[RESOLVED] VB Macro --Help!!
Hello,
I would like to automate the below process by a macro. I am not a programmer. Please help me in this regard.
I have a .doc file, which is nothing but xml tags. I would like to insert the page numbers into that doc file.
For example: (before macro runs)
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="99" id="id_0073010367_001_001131">
<title page-num="" id="id_0073010367_001_001132">
<chbe page-num="" id="id_0073010367_001_001133">
<verb page-num="" id="id_0073010367_001_001134">
<toce page-num="" id="id_0073010367_001_001137">
<para page-num="" id="id_0073010367_001_001140">
<para page-num="100" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="101" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
This is my doc file. I have some 1000 Pages like this. If you see the above example I have page-num=”numeric or empty”. I want to fill the empty page tag to the respective page number. The empty page-num will be the page number of the previous found page number. It should fill till it finds the page-num is not empty.
The output should be like this after macro runs…
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="99" id="id_0073010367_001_001131">
<title page-num="99" id="id_0073010367_001_001132">
<chbe page-num="99" id="id_0073010367_001_001133">
<verb page-num="99" id="id_0073010367_001_001134">
<toce page-num="99" id="id_0073010367_001_001137">
<para page-num="99" id="id_0073010367_001_001140">
<para page-num="100" id="id_0073010367_001_001143">
<para page-num="100" id="id_0073010367_001_001145">
<para page-num="100" id="id_0073010367_001_001146">
<para page-num="100" id="id_0073010367_001_001147">
<para page-num="100" id="id_0073010367_001_001148">
<para page-num="100" id="id_0073010367_001_001149">
<para page-num="100" id="id_0073010367_001_0011453">
<para page-num="101" id="id_0073010367_001_001143">
<para page-num="101" id="id_0073010367_001_001145">
<para page-num="101" id="id_0073010367_001_001146">
<para page-num="101" id="id_0073010367_001_001147">
<para page-num="101" id="id_0073010367_001_001148">
<para page-num="101" id="id_0073010367_001_001149">
<para page-num="101" id="id_0073010367_001_0011453">
It should work till end of the file.
-
Mar 13th, 2006, 12:32 PM
#2
Re: VB Macro --Help!!
Hi,
Here is the code for you:
VB Code:
Sub Macro1()
'
Application.ScreenUpdating = False
Dim intPageNo As Integer
Dim strTemp As String
With Selection.Find
startFind:
.ClearFormatting
.Replacement.ClearFormatting
.Execute findText:=" page-num=""*""", Forward:=True, Wrap:=wdFindStop, Format:=False, MatchCase:=False, MatchWholeWord:=False, MatchAllWordForms:=False, MatchSoundsLike:=False, MatchWildcards:=True
If .Found Then
strTemp = Selection.Text
If Len(strTemp) > 12 Then
intPageNo = FindPageNo(strTemp)
Else
Selection.Text = " page-num=""" & intPageNo & """"
Selection.MoveRight
End If
GoTo startFind
End If
.ClearFormatting
.Replacement.ClearFormatting
End With
ExitHere:
Application.ScreenUpdating = True
Exit Sub
End Sub
Function FindPageNo(strTemp As String) As Integer
Application.ScreenUpdating = False
FindPageNo = Replace(Replace(strTemp, " page-num=", ""), """", "")
Application.ScreenUpdating = True
End Function
-
Mar 14th, 2006, 12:53 AM
#3
Thread Starter
New Member
Re: VB Macro --Help!!
Hello Sriraman!
Thanks a lot!!
It works really great.
Thanks once again.
-
Apr 12th, 2006, 03:02 AM
#4
Thread Starter
New Member
Re: VB Macro --Help!!
Hi Sriraman,
I have to change few things in the above code.
Instead of page numbes as "1,2,3.." some times we also get romman numbers.
I think we have to use string instead of int, if i am right???
Can you please modify the code which can also accept roman numbers.
Thanks in Advance.
-
Apr 12th, 2006, 12:16 PM
#5
Re: VB Macro --Help!!
Yes You are right!
We need to use string instead of integer. Here is the sample source and its macros for you. Now this will work for number and any strings (roman or something else).
Source file:
Code:
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="99" id="id_0073010367_001_001131">
<title page-num="" id="id_0073010367_001_001132">
<chbe page-num="" id="id_0073010367_001_001133">
<verb page-num="" id="id_0073010367_001_001134">
<toce page-num="" id="id_0073010367_001_001137">
<para page-num="" id="id_0073010367_001_001140">
<para page-num="100" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="101" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="(a)" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="(i)" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="(A)" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="(I)" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="XX" id="id_0073010367_001_001131">
<title page-num="" id="id_0073010367_001_001132">
<chbe page-num="" id="id_0073010367_001_001133">
<verb page-num="" id="id_0073010367_001_001134">
<toce page-num="" id="id_0073010367_001_001137">
<para page-num="" id="id_0073010367_001_001140">
<para page-num="ii" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
<para page-num="iii" id="id_0073010367_001_001143">
<para page-num="" id="id_0073010367_001_001145">
<para page-num="" id="id_0073010367_001_001146">
<para page-num="" id="id_0073010367_001_001147">
<para page-num="" id="id_0073010367_001_001148">
<para page-num="" id="id_0073010367_001_001149">
<para page-num="" id="id_0073010367_001_0011453">
Macro:
VB Code:
Sub Macro1()
'
Application.ScreenUpdating = False
Dim intPageNo As String
Dim strTemp As String
With Selection.Find
startFind:
.ClearFormatting
.Replacement.ClearFormatting
.Execute findText:=" page-num=""*""", Forward:=True, Wrap:=wdFindStop, Format:=False, MatchCase:=False, MatchWholeWord:=False, MatchAllWordForms:=False, MatchSoundsLike:=False, MatchWildcards:=True
If .Found Then
strTemp = Selection.Text
If Len(strTemp) > 12 Then
intPageNo = FindPageNo(strTemp)
Else
Selection.Text = " page-num=""" & intPageNo & """"
Selection.MoveRight
End If
GoTo startFind
End If
.ClearFormatting
.Replacement.ClearFormatting
End With
ExitHere:
Application.ScreenUpdating = True
Exit Sub
End Sub
Function FindPageNo(strTemp As String) As String
Application.ScreenUpdating = False
FindPageNo = Replace(Replace(strTemp, " page-num=", ""), """", "")
Application.ScreenUpdating = True
End Function
Output:
Code:
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="99" id="id_0073010367_001_001131">
<title page-num="99" id="id_0073010367_001_001132">
<chbe page-num="99" id="id_0073010367_001_001133">
<verb page-num="99" id="id_0073010367_001_001134">
<toce page-num="99" id="id_0073010367_001_001137">
<para page-num="99" id="id_0073010367_001_001140">
<para page-num="100" id="id_0073010367_001_001143">
<para page-num="100" id="id_0073010367_001_001145">
<para page-num="100" id="id_0073010367_001_001146">
<para page-num="100" id="id_0073010367_001_001147">
<para page-num="100" id="id_0073010367_001_001148">
<para page-num="100" id="id_0073010367_001_001149">
<para page-num="100" id="id_0073010367_001_0011453">
<para page-num="101" id="id_0073010367_001_001143">
<para page-num="101" id="id_0073010367_001_001145">
<para page-num="101" id="id_0073010367_001_001146">
<para page-num="101" id="id_0073010367_001_001147">
<para page-num="101" id="id_0073010367_001_001148">
<para page-num="101" id="id_0073010367_001_001149">
<para page-num="101" id="id_0073010367_001_0011453">
<para page-num="(a)" id="id_0073010367_001_001143">
<para page-num="(a)" id="id_0073010367_001_001145">
<para page-num="(a)" id="id_0073010367_001_001146">
<para page-num="(a)" id="id_0073010367_001_001147">
<para page-num="(a)" id="id_0073010367_001_001148">
<para page-num="(a)" id="id_0073010367_001_001149">
<para page-num="(a)" id="id_0073010367_001_0011453">
<para page-num="(i)" id="id_0073010367_001_001143">
<para page-num="(i)" id="id_0073010367_001_001145">
<para page-num="(i)" id="id_0073010367_001_001146">
<para page-num="(i)" id="id_0073010367_001_001147">
<para page-num="(i)" id="id_0073010367_001_001148">
<para page-num="(i)" id="id_0073010367_001_001149">
<para page-num="(i)" id="id_0073010367_001_0011453">
<para page-num="(A)" id="id_0073010367_001_001143">
<para page-num="(A)" id="id_0073010367_001_001145">
<para page-num="(A)" id="id_0073010367_001_001146">
<para page-num="(A)" id="id_0073010367_001_001147">
<para page-num="(A)" id="id_0073010367_001_001148">
<para page-num="(A)" id="id_0073010367_001_001149">
<para page-num="(A)" id="id_0073010367_001_0011453">
<para page-num="(I)" id="id_0073010367_001_001143">
<para page-num="(I)" id="id_0073010367_001_001145">
<para page-num="(I)" id="id_0073010367_001_001146">
<para page-num="(I)" id="id_0073010367_001_001147">
<para page-num="(I)" id="id_0073010367_001_001148">
<para page-num="(I)" id="id_0073010367_001_001149">
<para page-num="(I)" id="id_0073010367_001_0011453">
<?xml version="1.0" encoding="utf-8"?>
<chapter page-num="XX" id="id_0073010367_001_001131">
<title page-num="XX" id="id_0073010367_001_001132">
<chbe page-num="XX" id="id_0073010367_001_001133">
<verb page-num="XX" id="id_0073010367_001_001134">
<toce page-num="XX" id="id_0073010367_001_001137">
<para page-num="XX" id="id_0073010367_001_001140">
<para page-num="ii" id="id_0073010367_001_001143">
<para page-num="ii" id="id_0073010367_001_001145">
<para page-num="ii" id="id_0073010367_001_001146">
<para page-num="ii" id="id_0073010367_001_001147">
<para page-num="ii" id="id_0073010367_001_001148">
<para page-num="ii" id="id_0073010367_001_001149">
<para page-num="ii" id="id_0073010367_001_0011453">
<para page-num="iii" id="id_0073010367_001_001143">
<para page-num="iii" id="id_0073010367_001_001145">
<para page-num="iii" id="id_0073010367_001_001146">
<para page-num="iii" id="id_0073010367_001_001147">
<para page-num="iii" id="id_0073010367_001_001148">
<para page-num="iii" id="id_0073010367_001_001149">
<para page-num="iii" id="id_0073010367_001_0011453">
Last edited by cssriraman; Apr 12th, 2006 at 12:19 PM.
CS
-
Apr 12th, 2006, 12:21 PM
#6
Re: VB Macro --Help!!
When you have received an answer to your question, please mark it as resolved using the Thread Tools menu.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|