Adding multiple lines with effects from VB6 to Powerpoint

G

Guest

I have a thread (that I lost darn it so apologies to whoever the code I used
below is!)

Anyway....

Wanted to add an extra text box but when I add say:

ppSlide2.Shapes(3).TextFrame.TextRange.Text = "line 3!"

it does not work.


'--------------------------------
'Create a new Standard EXE project. Form1 is created by default.
'2. Add a CommandButton to the default form.
'3. From the Project menu, click References, and add Microsoft PowerPoint
11.0 Object Library and Microsoft Office 11.0 Object Library. For Office
2000, this is the 9.0 version of the Type Libraries. For Office 2002, this is
the 10.0 version. For Microsoft Office 2003, this is the 11.0 version.
'4. Add the following to your form code window:
'--------------------------------

Private Sub Command1_Click()
' Start PowerPoint.
Dim ppApp As PowerPoint.Application
Set ppApp = CreateObject("Powerpoint.Application")

' Make it visible.
ppApp.Visible = True

' Add a new presentation.
Dim ppPres As PowerPoint.Presentation
Set ppPres = ppApp.Presentations.Add(msoTrue)

' Add a new slide.
Dim ppSlide1 As PowerPoint.Slide
Set ppSlide1 = ppPres.Slides.Add(1, ppLayoutText)

' Add some text.
ppSlide1.Shapes(1).TextFrame.TextRange.Text = "My first slide"
ppSlide1.Shapes(2).TextFrame.TextRange.Text = "Automating Powerpoint-" &
vbCr & "with VB6!"

' Add another slide, with a chart.
Dim ppSlide2 As PowerPoint.Slide
Set ppSlide2 = ppPres.Slides.Add(2, ppLayoutTextAndChart)

' Add some text.
ppSlide2.Shapes(1).TextFrame.TextRange.Text = "Slide 2's topic"
ppSlide2.Shapes(2).TextFrame.TextRange.Text = "You can create and use
charts in your Powerpoint slides!"
ppSlide2.Shapes(3).TextFrame.TextRange.Text = "You can create and use
charts in your Powerpoint slides!"

' Add a chart in the same location as the old one.
Dim cTop As Double
Dim cWidth As Double
Dim cHeight As Double
Dim cLeft As Double
With ppSlide2.Shapes(3)
cTop = .Top
cWidth = .Width
cHeight = .Height
cLeft = .Left
.Delete
End With
ppSlide2.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight, "MSGraph.Chart"

' Add another slide, with an organization chart.
Dim ppSlide3 As PowerPoint.Slide
Set ppSlide3 = ppPres.Slides.Add(3, ppLayoutOrgchart)

' Add some text.

ppSlide3.Shapes(1).TextFrame.TextRange.Text = "The rest is only limited
by your Imagination"

' Add an Org Chart in the same location as the old one.
With ppSlide3.Shapes(2)
cTop = .Top
cWidth = .Width
cHeight = .Height
cLeft = .Left
.Delete
End With
ppSlide3.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight,
"OrgPlusWOPX.4" 'OrgPlusWOPX.4
' is an object of the application Microsoft Organization Chart


' Setup slide show properties.
With ppPres.Slides.Range.SlideShowTransition
.EntryEffect = ppEffectRandom
.AdvanceOnTime = msoTrue
.AdvanceTime = 5 ' 5 seconds per slide
End With

' Prepare and run the slide show.
With ppPres.SlideShowSettings
.ShowType = ppShowTypeKiosk
.LoopUntilStopped = msoTrue

.RangeType = ppShowAll
.AdvanceMode = ppSlideShowUseSlideTimings
.Run
End With

' Sleep so user can watch the show.
Sleep (15000)

' Clean up.
ppApp.Quit

End Sub

How can I rather than using a template as such simple do a custom build?
 
D

David M. Marcovitz

You seem to be replacing what is in shape 3 with "line 3!". If you want
to add lines to that text box, you can do one of a number of things, such
as:

With ppSlide2.Shapes(3).TextFrame.TextRange
.Text = .Text & Chr$(13) & "line 3!"
End With


--
David M. Marcovitz
Microsoft PowerPoint MVP
Director of Graduate Programs in Educational Technology
Loyola College in Maryland
Author of _Powerful PowerPoint for Educators_
http://www.PowerfulPowerPoint.com/
 
S

Steve Rindsberg

Phoenix1 uk said:
I have a thread (that I lost darn it so apologies to whoever the code I used
below is!)

Anyway....

Wanted to add an extra text box but when I add say:

ppSlide2.Shapes(3).TextFrame.TextRange.Text = "line 3!"

it does not work.

No. Your slide two is a Title + Chart layout. It only has two shapes on it, so
there IS no Shapes(3).

You'll have to add your own text box before you can add text to it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top