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 / General PowerPoint Questions / February 2008

Tip: Looking for answers? Try searching our database.

Add macro to slide with .Net

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
kerb - 16 Feb 2008 12:44 GMT
In VB.net, I am trying to add an object (button) from the control toolbox on
a slide, and then I want to add the click and other events to it via VB.net.  
When I try to add code to the object it gets put in a new module rather than
in the slide area when you view the VB editor.

For instance, (in vb.net)
-------------------------------
dim msg as string="hello"

dim s as string = _
"Private Sub CommandButton1_Click()" & vbcrlf & _
"   '   some code here" & vbcrlf & _
"End Sub" & vbcrlf

oPres.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule).CodeModule.AddFromString(s)
----------------------------------

But this does not add the macro to the right area.  It adds a new module.  
To see what it should look like, if you place a button on a slide and then
click on it, you can see where this same code is placed.

Thanks
Shyam Pillai - 16 Feb 2008 14:15 GMT
Hi,
You cannot explicitly add a document module associated with a slide in
PowerPoint. When you add a active control on the slide, the document module
is inserted automaticallty. To add code into it, you will need to retreive
the reference. The VBComponent type to check for is vbext_ct_Document and
check it's name property.

Signature

Regards,
Shyam Pillai

Animation Carbon: Copy/Paste/Share animation libraries.
www.animationcarbon.com

> In VB.net, I am trying to add an object (button) from the control toolbox
> on
[quoted text clipped - 21 lines]
>
> Thanks
Steve Rindsberg - 16 Feb 2008 17:47 GMT
Unless I'm mistaken, you'd want to add the event handlers and other code to the Slide
object that contains the controls.  This example builds the code in a string; you may
prefer to add it from a file instead:

Sub AddSomeCode()

Dim x As Long
Dim sCode As String
Dim sSlideName As String

' Build the code; this assumes there's a cmdClickMe object
' on the slide and that it has a click event:
sCode = "Private Sub cmdClickMe_Click()" & vbCrLf
sCode = sCode & "MsgBox " & Chr$(34) & "You clicked?" & Chr$(34) & vbCrLf
sCode = sCode & "End Sub" & vbCrLf

sSlideName = "Slide1"   ' name is assigned by PPT

With ActivePresentation.VBProject

   For x = 1 To .VBComponents.Count
       With .VBComponents(x)
           Debug.Print .Name
           If .Name = sSlideName Then
               .CodeModule.AddFromString (sCode)
           End If
           
       End With
   Next
End With

'
oPres.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdMod
u
' le).CodeModule.AddFromString(s)
End Sub

> In VB.net, I am trying to add an object (button) from the control toolbox on
> a slide, and then I want to add the click and other events to it via VB.net.  
[quoted text clipped - 9 lines]
> "   '   some code here" & vbcrlf & _
> "End Sub" & vbcrlf

oPres.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdMod
ule).CodeModule.AddFromString(s)
> ----------------------------------
>
[quoted text clipped - 3 lines]
>
> Thanks

-----------------------------------------
Steve Rindsberg, PPT MVP
PPT FAQ:  www.pptfaq.com
PPTools:  www.pptools.com
================================================
kerb - 17 Feb 2008 02:10 GMT
Thanks!

> In VB.net, I am trying to add an object (button) from the control toolbox on
> a slide, and then I want to add the click and other events to it via VB.net.  
[quoted text clipped - 18 lines]
>
> Thanks
 
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.