soso119112 发表于 2010-1-27 11:24:00

请教:想要对幻灯片进行循环操作的代码怎么写?

ppt中共有N张幻灯片,每张幻灯片上有一个textbox1控件。
现在需要在每张幻灯片的textbox1中都写入一个“A”字,这个代码怎么写呢?
也就是说,先要判断ppt中有多少张幻灯片,再逐一对其进行写入的操作。
恳请高手相助,谢谢!

user_vsptgdab 发表于 2010-1-27 12:49:34

用 For Each

user_oerzi 发表于 2010-1-27 13:01:54

谢版主关注!这个我真不会做,恳请详细说明一下好么?
我这样写,试了不行:
for i=1 to slides.count
with slides(i)
.textbox1.value=小
end with
next
请版主多多指教,谢谢!

carboy12 发表于 2010-1-27 13:18:28

给你写个自动化宏:
Sub onSlideShowpageChange()   
    For Each sld In ActivePresentation.Slides
      For Each shp In sld.Shapes
            If shp.Type = msoOLEControlObject Then
                shp.OLEFormat.Object.Text = A
            End If
      Next
    Next   
End Sub

ew2382 发表于 2010-1-27 13:18:46

多谢laose版主出手相助!!!就是这个意思了。
只是离我的实际需要还未达成最后的效果:我是想在每个textbox1中写入“A”,而在每个textbox2中写入“B”。
(您的代码是在所有的textbox中都写入 A的。)
附件如下,请参考赐教,谢谢!

user_objgywzp 发表于 2010-1-27 13:26:10

你没说清楚啊,加个FOR循环就行了:
Sub onSlideShowpageChange()
   
    Dim i As Integer
   
    For Each sld In ActivePresentation.Slides
      For Each shp In sld.Shapes
            If shp.Type = msoOLEControlObject Then
                For i = 1 To sld.Shapes.Count
                  sld.Shapes(TextBox & i).OLEFormat.Object.Text = Chr(64 + i)
                Next
            End If
      Next
    Next
   
End Sub

imambumence 发表于 2010-1-27 13:38:40

版主,您好!以下这句代码在附件中未能通过,请教怎么处理,谢谢您!
                  sld.Shapes(i).OLEFormat.Object.Text = Chr(64 + i)

rabbimeng 发表于 2010-1-27 14:18:03

看我更新后的代码如何??

user_xuwff 发表于 2010-1-27 14:19:17

真后悔来的这么晚!虽然在同学们中间做的还是不错的,可是,看见这里高手们的帖子,才知道自己有多么……

heeb0957 发表于 2010-1-27 14:21:47

回版主,还是未能在附件中通过。还要请您费心,谢谢!
我原来写了几十个 with....,end with:
    With Slide1
      .TextBox1.Value = A
      .TextBox2.Value = B
end with
    With Slide2
      .TextBox1.Value = A
      .TextBox2.Value = B
end with
..........
现在就是想的要用循环操作的方法来简化原表的代码,可是怎么也弄不成功。
页: [1] 2 3
查看完整版本: 请教:想要对幻灯片进行循环操作的代码怎么写?