Adding Powerpoint Comment with Visual Basic

B

Bjorn Haman

Hi people,
perhaps someone can help me out here.

I'm currently developing an ActiveX DLL (in VB6) that will take a text
string and paste it as a comment on a powerpoint slide (Powerpoint 2000).
The following code works:

Dim oPowerPointApplication As powerpoint.Application
Set oPowerPointApplication = CreateObject("powerpoint.application")
DoEvents

oPowerPointApplication.Visible = msoTrue
DoEvents

Dim oPowerPointPresentation As powerpoint.Presentation
Set oPowerPointPresentation =
oPowerPointApplication.Presentations.Add(msoTrue)
DoEvents

oPowerPointApplication.ActiveWindow.ViewType = ppViewNormal
DoEvents

Dim oPowerPointSlide As powerpoint.Slide
Set oPowerPointSlide = oPowerPointPresentation.Slides.Add(1, 1)
DoEvents

With oPowerPointSlide.Shapes.AddComment(100, 100, 150, 150)
.TextFrame.TextRange.Text = .TextFrame _
.TextRange.Text = "Test Comment"
End With

However,
I want to do this WITHOUT having to use the Powerpoint graphical interface
(IE remove the line oPowerPointApplication.Visible = msoTrue), but when i Do
this an error is raised at:
oPowerPointApplication.ActiveWindow.ViewType = ppViewNormal (Because this
line requires the Powerpoint.application to be in a 'slide view'.

Does anyone have a clue on how to solve this?

Kind Regards
/Bjorn Haman, (e-mail address removed)
 
S

Steve Rindsberg

Hi people,
perhaps someone can help me out here.

I'm currently developing an ActiveX DLL (in VB6) that will take a text
string and paste it as a comment on a powerpoint slide (Powerpoint 2000).
The following code works:

Dim oPowerPointApplication As powerpoint.Application
Set oPowerPointApplication = CreateObject("powerpoint.application")
DoEvents

oPowerPointApplication.Visible = msoTrue
DoEvents

Dim oPowerPointPresentation As powerpoint.Presentation
Set oPowerPointPresentation =
oPowerPointApplication.Presentations.Add(msoTrue)
DoEvents

oPowerPointApplication.ActiveWindow.ViewType = ppViewNormal
DoEvents

Dim oPowerPointSlide As powerpoint.Slide
Set oPowerPointSlide = oPowerPointPresentation.Slides.Add(1, 1)
DoEvents

With oPowerPointSlide.Shapes.AddComment(100, 100, 150, 150)
.TextFrame.TextRange.Text = .TextFrame _
.TextRange.Text = "Test Comment"
End With

However,
I want to do this WITHOUT having to use the Powerpoint graphical interface
(IE remove the line oPowerPointApplication.Visible = msoTrue), but when i Do
this an error is raised at:
oPowerPointApplication.ActiveWindow.ViewType = ppViewNormal (Because this
line requires the Powerpoint.application to be in a 'slide view'.

Does anyone have a clue on how to solve this?

Comment out the line that raises an error? ;-)
Seriously, your code doesn't seem to require that the presentation be in normal
view for any reason, so don't force the issue, if forcing the issue forces an
error.



--
Steve Rindsberg, PPT MVP
PPT FAQ: www.pptfaq.com
PPTools: www.pptools.com
================================================
Featured Presenter, PowerPoint Live 2004
October 10-13, San Diego, CA www.PowerPointLive.com
================================================
 
S

Shyam Pillai

Bjorn,
When your application is not visible, ActiveView object is not applicable.
You can comment it out.

However, the issue is that but you've stumbled across a bug I've encountered
in the past. You cannot use the AddComment method when the PowerPoint
document is not visible. I haven't come up with a solution for it. In 2002
the comments object was revamped and new Comment object was introduced which
works just fine.
 
B

Bjorn Haman

This was what I feared. The system we are building requires Powerpoint 2000
Anyway, I will have to start off using a minimized PPT window. I will look
into this some more though.

Thanks for you input, Shyam
(I've learnt a great deal from your tips on the internet in the past :) )
 

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