Hi. I made a macro in Microsoft Word.

But I need to create a VBA which does the macro.

So what I have to create is, make a program that imports user's word
document, and run the macro.

Can any of you help me on this? I mean how can I transform the macro into
VBA?



following is my macro.

----------------------------
Sub breakapart()
' splitter Macro



Dim mask As String
Selection.EndKey Unit:=wdStory
Letters = Selection.Information(wdActiveEndSectionNumber)
mask = "ddMMyy"

Selection.HomeKey Unit:=wdStory
Counter = 1
FileId = " "
FileId2 = " "
While Counter < Letters

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
FileId = Selection
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
FileId2 = Selection
DocName = "C:\Progress Report\students\" & FileId
DocName2 = "C:\Progress Report\advisors\" & FileId2
ActiveDocument.Sections.First.Range.Cut
Documents.Add
Selection.Paste
ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument
ActiveWindow.Close
Documents.Add
Selection.Paste
ActiveDocument.SaveAs FileName:=DocName2, FileFormat:=wdFormatDocument
ActiveWindow.Close
Counter = Counter + 1
Wend

End Sub

Re: How can I make VBA to run Microsoft word macro? by Howard

Howard
Sun Mar 13 12:22:40 CST 2005

The macro is VBA.

--
http://www.standards.com/; See Howard Kaikow's web site.
"bufuro" <hinewwiner1234@hanmail.net> wrote in message
news:u5ZZDn%23JFHA.2704@tk2msftngp13.phx.gbl...
> Hi. I made a macro in Microsoft Word.
>
> But I need to create a VBA which does the macro.
>
> So what I have to create is, make a program that imports user's word
> document, and run the macro.
>
> Can any of you help me on this? I mean how can I transform the macro into
> VBA?
>
>
>
> following is my macro.
>
> ----------------------------
> Sub breakapart()
> ' splitter Macro
>
>
>
> Dim mask As String
> Selection.EndKey Unit:=wdStory
> Letters = Selection.Information(wdActiveEndSectionNumber)
> mask = "ddMMyy"
>
> Selection.HomeKey Unit:=wdStory
> Counter = 1
> FileId = " "
> FileId2 = " "
> While Counter < Letters
>
> If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
> ActiveWindow.Panes(2).Close
> End If
> If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
> ActivePane.View.Type = wdOutlineView Then
> ActiveWindow.ActivePane.View.Type = wdPrintView
> End If
> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
> If Selection.HeaderFooter.IsHeader = True Then
> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
> Else
> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
> End If
> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> Selection.Copy
> FileId = Selection
> Selection.MoveDown Unit:=wdLine, Count:=2
> Selection.HomeKey Unit:=wdLine
> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> Selection.Copy
> FileId2 = Selection
> DocName = "C:\Progress Report\students\" & FileId
> DocName2 = "C:\Progress Report\advisors\" & FileId2
> ActiveDocument.Sections.First.Range.Cut
> Documents.Add
> Selection.Paste
> ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument
> ActiveWindow.Close
> Documents.Add
> Selection.Paste
> ActiveDocument.SaveAs FileName:=DocName2, FileFormat:=wdFormatDocument
> ActiveWindow.Close
> Counter = Counter + 1
> Wend
>
> End Sub
>
>



Re: How can I make VBA to run Microsoft word macro? by bufuro

bufuro
Sun Mar 13 17:23:07 CST 2005

Then can I copy the macro code to Visual Basic .NET and make a program?
Don't I need to import somekind of microsoft word reference?
"Howard Kaikow" <kaikow@standards.com> wrote in message
news:e76iKm$JFHA.336@TK2MSFTNGP09.phx.gbl...
> The macro is VBA.
>
> --
> http://www.standards.com/; See Howard Kaikow's web site.
> "bufuro" <hinewwiner1234@hanmail.net> wrote in message
> news:u5ZZDn%23JFHA.2704@tk2msftngp13.phx.gbl...
>> Hi. I made a macro in Microsoft Word.
>>
>> But I need to create a VBA which does the macro.
>>
>> So what I have to create is, make a program that imports user's word
>> document, and run the macro.
>>
>> Can any of you help me on this? I mean how can I transform the macro
>> into
>> VBA?
>>
>>
>>
>> following is my macro.
>>
>> ----------------------------
>> Sub breakapart()
>> ' splitter Macro
>>
>>
>>
>> Dim mask As String
>> Selection.EndKey Unit:=wdStory
>> Letters = Selection.Information(wdActiveEndSectionNumber)
>> mask = "ddMMyy"
>>
>> Selection.HomeKey Unit:=wdStory
>> Counter = 1
>> FileId = " "
>> FileId2 = " "
>> While Counter < Letters
>>
>> If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
>> ActiveWindow.Panes(2).Close
>> End If
>> If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
>> _
>> ActivePane.View.Type = wdOutlineView Then
>> ActiveWindow.ActivePane.View.Type = wdPrintView
>> End If
>> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
>> If Selection.HeaderFooter.IsHeader = True Then
>> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
>> Else
>> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
>> End If
>> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
>> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
>> Selection.Copy
>> FileId = Selection
>> Selection.MoveDown Unit:=wdLine, Count:=2
>> Selection.HomeKey Unit:=wdLine
>> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
>> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
>> Selection.Copy
>> FileId2 = Selection
>> DocName = "C:\Progress Report\students\" & FileId
>> DocName2 = "C:\Progress Report\advisors\" & FileId2
>> ActiveDocument.Sections.First.Range.Cut
>> Documents.Add
>> Selection.Paste
>> ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument
>> ActiveWindow.Close
>> Documents.Add
>> Selection.Paste
>> ActiveDocument.SaveAs FileName:=DocName2, FileFormat:=wdFormatDocument
>> ActiveWindow.Close
>> Counter = Counter + 1
>> Wend
>>
>> End Sub
>>
>>
>
>



Re: How can I make VBA to run Microsoft word macro? by Howard

Howard
Sun Mar 13 23:51:52 CST 2005

Moving VBA code to either VB or VB .NET requires learning a bit about
Automating Word from another app.

You have to ask at least the following questions:

1. Is the goal to create a library of code that can be referenced from
within Word?
2. Is the goal to have a stand-alone program that controls Word?

--
http://www.standards.com/; See Howard Kaikow's web site.
"bufuro" <hinewwiner1234@hanmail.net> wrote in message
news:Oy4KXOCKFHA.3992@TK2MSFTNGP15.phx.gbl...
> Then can I copy the macro code to Visual Basic .NET and make a program?
> Don't I need to import somekind of microsoft word reference?
> "Howard Kaikow" <kaikow@standards.com> wrote in message
> news:e76iKm$JFHA.336@TK2MSFTNGP09.phx.gbl...
> > The macro is VBA.
> >
> > --
> > http://www.standards.com/; See Howard Kaikow's web site.
> > "bufuro" <hinewwiner1234@hanmail.net> wrote in message
> > news:u5ZZDn%23JFHA.2704@tk2msftngp13.phx.gbl...
> >> Hi. I made a macro in Microsoft Word.
> >>
> >> But I need to create a VBA which does the macro.
> >>
> >> So what I have to create is, make a program that imports user's word
> >> document, and run the macro.
> >>
> >> Can any of you help me on this? I mean how can I transform the macro
> >> into
> >> VBA?
> >>
> >>
> >>
> >> following is my macro.
> >>
> >> ----------------------------
> >> Sub breakapart()
> >> ' splitter Macro
> >>
> >>
> >>
> >> Dim mask As String
> >> Selection.EndKey Unit:=wdStory
> >> Letters = Selection.Information(wdActiveEndSectionNumber)
> >> mask = "ddMMyy"
> >>
> >> Selection.HomeKey Unit:=wdStory
> >> Counter = 1
> >> FileId = " "
> >> FileId2 = " "
> >> While Counter < Letters
> >>
> >> If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
> >> ActiveWindow.Panes(2).Close
> >> End If
> >> If ActiveWindow.ActivePane.View.Type = wdNormalView Or
ActiveWindow.
> >> _
> >> ActivePane.View.Type = wdOutlineView Then
> >> ActiveWindow.ActivePane.View.Type = wdPrintView
> >> End If
> >> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
> >> If Selection.HeaderFooter.IsHeader = True Then
> >> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
> >> Else
> >> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
> >> End If
> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> >> Selection.Copy
> >> FileId = Selection
> >> Selection.MoveDown Unit:=wdLine, Count:=2
> >> Selection.HomeKey Unit:=wdLine
> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> >> Selection.Copy
> >> FileId2 = Selection
> >> DocName = "C:\Progress Report\students\" & FileId
> >> DocName2 = "C:\Progress Report\advisors\" & FileId2
> >> ActiveDocument.Sections.First.Range.Cut
> >> Documents.Add
> >> Selection.Paste
> >> ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument
> >> ActiveWindow.Close
> >> Documents.Add
> >> Selection.Paste
> >> ActiveDocument.SaveAs FileName:=DocName2, FileFormat:=wdFormatDocument
> >> ActiveWindow.Close
> >> Counter = Counter + 1
> >> Wend
> >>
> >> End Sub
> >>
> >>
> >
> >
>
>



Re: How can I make VBA to run Microsoft word macro? by bufuro

bufuro
Tue Mar 15 18:18:57 CST 2005

I think my goal is to have a stand-alone program. Is that possible?

(Thank you so much for all your help)


"Howard Kaikow" <kaikow@standards.com> wrote in message
news:e2SQRnFKFHA.4056@TK2MSFTNGP14.phx.gbl...
> Moving VBA code to either VB or VB .NET requires learning a bit about
> Automating Word from another app.
>
> You have to ask at least the following questions:
>
> 1. Is the goal to create a library of code that can be referenced from
> within Word?
> 2. Is the goal to have a stand-alone program that controls Word?
>
> --
> http://www.standards.com/; See Howard Kaikow's web site.
> "bufuro" <hinewwiner1234@hanmail.net> wrote in message
> news:Oy4KXOCKFHA.3992@TK2MSFTNGP15.phx.gbl...
>> Then can I copy the macro code to Visual Basic .NET and make a program?
>> Don't I need to import somekind of microsoft word reference?
>> "Howard Kaikow" <kaikow@standards.com> wrote in message
>> news:e76iKm$JFHA.336@TK2MSFTNGP09.phx.gbl...
>> > The macro is VBA.
>> >
>> > --
>> > http://www.standards.com/; See Howard Kaikow's web site.
>> > "bufuro" <hinewwiner1234@hanmail.net> wrote in message
>> > news:u5ZZDn%23JFHA.2704@tk2msftngp13.phx.gbl...
>> >> Hi. I made a macro in Microsoft Word.
>> >>
>> >> But I need to create a VBA which does the macro.
>> >>
>> >> So what I have to create is, make a program that imports user's word
>> >> document, and run the macro.
>> >>
>> >> Can any of you help me on this? I mean how can I transform the macro
>> >> into
>> >> VBA?
>> >>
>> >>
>> >>
>> >> following is my macro.
>> >>
>> >> ----------------------------
>> >> Sub breakapart()
>> >> ' splitter Macro
>> >>
>> >>
>> >>
>> >> Dim mask As String
>> >> Selection.EndKey Unit:=wdStory
>> >> Letters = Selection.Information(wdActiveEndSectionNumber)
>> >> mask = "ddMMyy"
>> >>
>> >> Selection.HomeKey Unit:=wdStory
>> >> Counter = 1
>> >> FileId = " "
>> >> FileId2 = " "
>> >> While Counter < Letters
>> >>
>> >> If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
>> >> ActiveWindow.Panes(2).Close
>> >> End If
>> >> If ActiveWindow.ActivePane.View.Type = wdNormalView Or
> ActiveWindow.
>> >> _
>> >> ActivePane.View.Type = wdOutlineView Then
>> >> ActiveWindow.ActivePane.View.Type = wdPrintView
>> >> End If
>> >> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
>> >> If Selection.HeaderFooter.IsHeader = True Then
>> >> ActiveWindow.ActivePane.View.SeekView =
>> >> wdSeekCurrentPageFooter
>> >> Else
>> >> ActiveWindow.ActivePane.View.SeekView =
>> >> wdSeekCurrentPageHeader
>> >> End If
>> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
>> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
>> >> Selection.Copy
>> >> FileId = Selection
>> >> Selection.MoveDown Unit:=wdLine, Count:=2
>> >> Selection.HomeKey Unit:=wdLine
>> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
>> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
>> >> Selection.Copy
>> >> FileId2 = Selection
>> >> DocName = "C:\Progress Report\students\" & FileId
>> >> DocName2 = "C:\Progress Report\advisors\" & FileId2
>> >> ActiveDocument.Sections.First.Range.Cut
>> >> Documents.Add
>> >> Selection.Paste
>> >> ActiveDocument.SaveAs FileName:=DocName, FileFormat:=wdFormatDocument
>> >> ActiveWindow.Close
>> >> Documents.Add
>> >> Selection.Paste
>> >> ActiveDocument.SaveAs FileName:=DocName2, FileFormat:=wdFormatDocument
>> >> ActiveWindow.Close
>> >> Counter = Counter + 1
>> >> Wend
>> >>
>> >> End Sub
>> >>
>> >>
>> >
>> >
>>
>>
>
>



Re: How can I make VBA to run Microsoft word macro? by Howard

Howard
Tue Mar 15 23:07:59 CST 2005

There is not really such a thing as a stand-alone Word program.

But, you can write your program in, e.g, VB 6 or VB .NET, and control Word
from that program.

For example, the following is a VB 6 program that works in Word 97 and up
that uses Word and Excel. In this case, neither Word nor Excel is made
visible to the user.

http://www.standards.com/index.html?Sorting

In another app, the VB program could act as a front-end for starting, say,
word or Excel, and, as needed, cleanup after itself.

Or you could put the code in a DLL and Word can use the code in the DLL.

For example, the following is ALL the code in my Normal template, all the
real code is in a number of VB 6 compiled DLLs:

Option Explicit
Public clsWordVBNormal As WordVBNormal

Public Sub AutoClose()
SetupClass
clsWordVBNormal.AutoClose
End Sub

Public Sub AutoExec()
' Runs only when global
SetupClass
clsWordVBNormal.AutoExec
End Sub

Public Sub AutoExit()
SetupClass
clsWordVBNormal.AutoExit
End Sub

Public Sub AutoNew()
SetupClass
clsWordVBNormal.AutoNew
End Sub

Public Sub AutoOpen()
SetupClass
clsWordVBNormal.AutoOpen
End Sub

Private Sub SetupClass()
Dim docTemp As Word.Document
If clsWordVBNormal Is Nothing Then
If Documents.Count = 0 Then
Set docTemp = Documents.Add(Visible:=vbFalse)
End If
Set clsWordVBNormal = New WordVBNormal
clsWordVBNormal.SetClass Word.Application
If Not (docTemp Is Nothing) Then
docTemp.Close
Set docTemp = Nothing
End If
End If
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit

Public Sub ResetToolsOptionsView()
clsWordVBNormal.ResetToolsOptionsView
End Sub

--
http://www.standards.com/; See Howard Kaikow's web site.
"bufuro" <hinewwiner1234@hanmail.net> wrote in message
news:e3$M52bKFHA.3500@TK2MSFTNGP14.phx.gbl...
> I think my goal is to have a stand-alone program. Is that possible?
>
> (Thank you so much for all your help)
>
>
> "Howard Kaikow" <kaikow@standards.com> wrote in message
> news:e2SQRnFKFHA.4056@TK2MSFTNGP14.phx.gbl...
> > Moving VBA code to either VB or VB .NET requires learning a bit about
> > Automating Word from another app.
> >
> > You have to ask at least the following questions:
> >
> > 1. Is the goal to create a library of code that can be referenced from
> > within Word?
> > 2. Is the goal to have a stand-alone program that controls Word?
> >
> > --
> > http://www.standards.com/; See Howard Kaikow's web site.
> > "bufuro" <hinewwiner1234@hanmail.net> wrote in message
> > news:Oy4KXOCKFHA.3992@TK2MSFTNGP15.phx.gbl...
> >> Then can I copy the macro code to Visual Basic .NET and make a program?
> >> Don't I need to import somekind of microsoft word reference?
> >> "Howard Kaikow" <kaikow@standards.com> wrote in message
> >> news:e76iKm$JFHA.336@TK2MSFTNGP09.phx.gbl...
> >> > The macro is VBA.
> >> >
> >> > --
> >> > http://www.standards.com/; See Howard Kaikow's web site.
> >> > "bufuro" <hinewwiner1234@hanmail.net> wrote in message
> >> > news:u5ZZDn%23JFHA.2704@tk2msftngp13.phx.gbl...
> >> >> Hi. I made a macro in Microsoft Word.
> >> >>
> >> >> But I need to create a VBA which does the macro.
> >> >>
> >> >> So what I have to create is, make a program that imports user's word
> >> >> document, and run the macro.
> >> >>
> >> >> Can any of you help me on this? I mean how can I transform the
macro
> >> >> into
> >> >> VBA?
> >> >>
> >> >>
> >> >>
> >> >> following is my macro.
> >> >>
> >> >> ----------------------------
> >> >> Sub breakapart()
> >> >> ' splitter Macro
> >> >>
> >> >>
> >> >>
> >> >> Dim mask As String
> >> >> Selection.EndKey Unit:=wdStory
> >> >> Letters = Selection.Information(wdActiveEndSectionNumber)
> >> >> mask = "ddMMyy"
> >> >>
> >> >> Selection.HomeKey Unit:=wdStory
> >> >> Counter = 1
> >> >> FileId = " "
> >> >> FileId2 = " "
> >> >> While Counter < Letters
> >> >>
> >> >> If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
> >> >> ActiveWindow.Panes(2).Close
> >> >> End If
> >> >> If ActiveWindow.ActivePane.View.Type = wdNormalView Or
> > ActiveWindow.
> >> >> _
> >> >> ActivePane.View.Type = wdOutlineView Then
> >> >> ActiveWindow.ActivePane.View.Type = wdPrintView
> >> >> End If
> >> >> ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
> >> >> If Selection.HeaderFooter.IsHeader = True Then
> >> >> ActiveWindow.ActivePane.View.SeekView =
> >> >> wdSeekCurrentPageFooter
> >> >> Else
> >> >> ActiveWindow.ActivePane.View.SeekView =
> >> >> wdSeekCurrentPageHeader
> >> >> End If
> >> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> >> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> >> >> Selection.Copy
> >> >> FileId = Selection
> >> >> Selection.MoveDown Unit:=wdLine, Count:=2
> >> >> Selection.HomeKey Unit:=wdLine
> >> >> Selection.EndKey Unit:=wdLine, Extend:=wdExtend
> >> >> Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
> >> >> Selection.Copy
> >> >> FileId2 = Selection
> >> >> DocName = "C:\Progress Report\students\" & FileId
> >> >> DocName2 = "C:\Progress Report\advisors\" & FileId2
> >> >> ActiveDocument.Sections.First.Range.Cut
> >> >> Documents.Add
> >> >> Selection.Paste
> >> >> ActiveDocument.SaveAs FileName:=DocName,
FileFormat:=wdFormatDocument
> >> >> ActiveWindow.Close
> >> >> Documents.Add
> >> >> Selection.Paste
> >> >> ActiveDocument.SaveAs FileName:=DocName2,
FileFormat:=wdFormatDocument
> >> >> ActiveWindow.Close
> >> >> Counter = Counter + 1
> >> >> Wend
> >> >>
> >> >> End Sub
> >> >>
> >> >>
> >> >
> >> >
> >>
> >>
> >
> >
>
>