Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / New Users / January 2007

Tip: Looking for answers? Try searching our database.

adding code to command button in word from excel VBA

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
hornbecky83 - 03 Jan 2007 18:03 GMT
Hi-

I am creating a document in word with excel VBA.  I figured out how to
add a command button to word from excel VBA, but I can not figure out
how to add code to that command button for when the command button is
clicked on.  I do not want to use a userform.  I know how to add code
to the button i create in an excel document, but I can't seem to add
code to a button in word, using excel VBA.  Here is the code I have
created so far.  I wrote messages in the code to tell you what i was
doing and which part i am having problems with.  I have been working on
this for several days and would appreciate any help you can give me.
THank you!

Dim Wdoc As Word.document
Dim Wapp As Word.Application
Dim rng As Word.Range
Dim shp As Word.InlineShape

'this created a word document
Set Wapp = CreateObject("Word.Application")
   Wapp.Visible = True
   Wapp.Documents.Add
   Set Wdoc = Wapp.ActiveDocument

Set rng = Wdoc.Paragraphs.Last.Range

'this created my command button and named it
       Set shp =
rng.document.InlineShapes.AddOLEControl(ClassType:="Forms.Commandbutton.1",
_
              Range:=Wdoc.Paragraphs.Last.Range)

       shp.OLEFormat.Object.Caption = "Add Orbit"
       shp.OLEFormat.Object.Name = "OrbitButton"

'this is the part that doesn't work.  I am trying to add code for when
it is clicked on.  This is one of
'the methods i tried.
       With
rng.document.VBProject.VBComponents(ActiveDocument.CodeName).CodeModule
           .InsertLines .CreateEventProc("Click",
shp.OLEFormat.Object.Name) + 1, _
               "Msgbox ""You Clicked The Button"" "
       End With

'i also tried changing the previous code to this and it still did not
work.

       With
thisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
           .InsertLines .CreateEventProc("Click",
shp.OLEFormat.Object.Name) + 1, _
               "Msgbox ""You Clicked The Button"" "
       End With
Rodrigo Ferreira - 03 Jan 2007 18:36 GMT
Can be a button on toolbar?
Try the code below (or something like this). This code I use in Excel to
create a button on tool bar. Maybe if you add your "Wdoc" before
"CommandBars."... (sorry but i don'r know how to use OLEControl)

Const strNameCommandBar As String = "Test"
Const strNameCommandBarButton As String = "Test"

Sub CreateCustomButton()

Dim myNewBar As CommandBar
Dim customButton As CommandBarButton

Dim x As CommandBar, LastBar As CommandBar
Dim LastRow As Integer

   On Error Resume Next
   CommandBars(strNameCommandBar).Delete

   'Put the button after the last button on toolbar
   For Each x In Application.CommandBars
       If x.Visible = True And x.Position = msoBarTop Then
           If x.RowIndex > LastRow Then
               Set LastBar = x
               LastRow = x.RowIndex
           End If
       End If
   Next x

   Set myNewBar = CommandBars.Add(Name:=strNameCommandBar,
Position:=msoBarTop, Temporary:=True)
   'Set myNewBar = CommandBars.Add(Name:=strNameCommandBar,
Position:=msoBarFloating, Temporary:=True)
   With myNewBar
       .Enabled = True
       .Left = LastBar.Left + LastBar.Width + 1
       .RowIndex = LastRow
       .Visible = True
   End With

   Set customButton = myNewBar.Controls.Add(Type:=msoControlButton, ID:=23)
   customButton.Caption = strNameCommandBarButton
   customButton.FaceId = 92
   customButton.TooltipText = "Corrige Links de funções de migração"
   customButton.Style = msoButtonIconAndWrapCaption 'msoButtonCaption
   customButton.OnAction = "MyMacro"

   On Error GoTo 0
End Sub

Sub DeleteCustomButton()
   On Error Resume Next 'In case it has already gone.
   Application.CommandBars(strNameCommandBar).Controls(strNameCommandBarButton).Delete
   Application.CommandBars(strNameCommandBar).Delete
   On Error GoTo 0
End Sub

Sub MyMacro()
MsgBox "My Macro"
End Sub

Signature

Rodrigo Ferreira
Brazil

> Hi-
>
[quoted text clipped - 50 lines]
>                "Msgbox ""You Clicked The Button"" "
>        End With

Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.