win32com ppt embedded object - SOLVED

Lance Hoffmeyer lance at augustmail.com
Wed Jul 11 17:14:42 EDT 2007


Basically,
   if I ran (after discovering what the object name I was trying to modify in the ppt slide was):

if WB.Slides(29).Shapes("Object 2").Type==7:
	PWB = WB.Slides(29).Shapes("Object 2")                         #Select the Graph Object	
	oGraph = PWB.OLEFormat.Object
	oGraph.Application.datasheet.Range("00").Value = "Fav"

this code worked.


When I ran this:

for shape in WB.Slides(29).Shapes:
	if (shape.Type== 7):
		print shape.Name
		PWB = WB.Slides(29).Shapes(shape)
		oGraph = PWB.OLEFormat.Object
		oGraph.Application.datasheet.Range("00").Value = "Fav"


I got an error.


I tried "print shape" I received

<win32com.gen_py.Microsoft PowerPoint 11.0 Object Library.Shape instance at 0x17793112>


Putting in PWB = WB.Slides(29).Shapes(shape.Name) instead of PWB = WB.Slides(29).Shapes(shape)
allowed this to work.

Also, I discovered I was working with a MSGraph object and not an Excel spreadsheet object.

for shape in WB.Slides(29).Shapes:
	if (shape.Type== 7):
		print shape.Name
		PWB = WB.Slides(29).Shapes(shape.Name)
		oGraph = PWB.OLEFormat.Object
		oGraph.Application.datasheet.Range("00").Value = "Fav"

Lance






Lance Hoffmeyer wrote:
> Hey all,
> 
> I am trying to create some python code to edit embedded ppt slides and need some help.
> 
> import win32com.client
> from win32com.client import constants
> import re
> import codecs,win32com.client
> import time
> import datetime
> import win32com.client.dynamic
> ######################################################
> ############ VARIOUS VARIABLES TO SET ################
> path = "C:\temp/"
> ######################################################
> ######################################################
> 
> 
> PPT=win32com.client.Dispatch("PowerPoint.Application")
> WB=PPT.Presentations.Open(path + "File.ppt")
> PPT.Visible=1
> PPTSLIDE= 29
> 
> for Z in WB.Slides(29).Shapes:
> 	if (Z.Type== 7):
> 		ZZ=Z.OLEFormat.Object
> 		WSHEET = ZZ.Worksheets(1)
> 		WSHEET.Range("A1").Value = .50
> 		WSHEET.Range("A1").NumberFormat="0%"
> 
> Gives error:
> 
> Traceback (most recent call last):
>   File "P:\Burke\TRACKERS\Ortho-McNeil\04 2007, 04-10 WAVE 4\Automation\Document1.py", line 23, in ?
>     WSHEET = ZZ.Worksheets(1)
>   File "C:\Program Files\Python\lib\site-packages\win32com\client\dynamic.py", line 489, in __getattr__
>     raise AttributeError, "%s.%s" % (self._username_, attr)
> AttributeError: <unknown>.Worksheets
> 
> Tool completed with exit code 1
> 
> 
> 
> Why is ZZ unknown and how to I correct this?
> 
> 
> 
> 
> Thanks in advance,
> 
> Lance
> 
> 



More information about the Python-list mailing list