Stuart McLachlan
stuart at lexacorp.com.pg
Wed Feb 9 01:11:56 CST 2005
On 9 Feb 2005 at 0:34, John Bartow wrote:
>
> My problem is that I need to have a method which allows the user to enter
> which pages shouldn't be converted to grayscale and then prevent my little
> routine here from messing with those slides. There is one small section in
> the PP-VBA module below, enclosed in
> '--------------------------------------------- where you will be able to see
> what I mean. I have eliminated one slide from being processed by the
> statement: "If objSlide.SlideNumber <> 9 Then"
Try something like this (assumes that PP VBA has Inputbox, Split and Join
functions)
> Sub ProcessShapes()
> Dim objSlide As Slide
> Dim objShape As Shape
> Dim i As Integer
> Dim intUseGray As Integer
> Dim lngNewRGB As Long
>
Dim strPages() as string
Dim StrSkipPages as String
Dim lngLoop as Long
'Get user input
strSkipPages = Inputbox("Enter pages to skip, separated by commas")
'use split and join to change format of each element to three digits
' so that 9 won't be skipped 'if 19 if in the list etc
'build array
strPages() = split(strSkipPages,",")
'pad elements
For lngLoop = 0 to Ubound(strPages())
strPages(lngLoop) = Right$("000" & strPages(lngLoop),3)
Next
'Rebuild String
strSkipPages = Join(strPages(),",")
For Each objSlide In ActivePresentation.Slides
intCountObjects = intCountObjects + 1 'running count of objects
'test whether we should process this slide
If Instr(strSKipPages,Format$(intCountObjects,"000")) > 1 then
For Each objShape In objSlide.Shapes
..........
Next objShape
End if
Next objSlide
--
Stuart