找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: user_hyvle

请教PPT之VBA问题,急!!!

12
回复
1532
查看
[复制链接]

21

主题

229

帖子

55

幻币

一流武者

Rank: 3Rank: 3

积分
293
QQ
2016-4-12 17:46:23 显示全部楼层
谢谢laose朋友的回答,我在国外网站找到一段检测Placeholders集合中对象的索引值的脚本,粘贴如下,希望对大家有用!
Sub Object_Types_on_This_Slide()
    'Refers to each object on the current page and returns the Shapes.Type
    'Can be very useful when searching through all objects on a page
    Dim it As String
    Dim i As Integer
    Dim Ctr As Integer
    '''''''''''''''''
    'Read-only  Long
    '''''''''''''''''
    For i = 1 To ActiveWindow.Selection.SlideRange.Shapes.Count
        'No need to select the object in order to use it
        With ActiveWindow.Selection.SlideRange.Shapes(i)
        'But it is easier to watch when the object is selected
        'This next line is for demonstration purposes only.
        'It is not necessary
        ActiveWindow.Selection.SlideRange.Shapes(i).Select
        Select Case .Type
            'Type 1
            Case msoAutoShape
                it = "an AutoShape. Type : " & .Type
            'Type 2
            Case msoCallout
                it = "a Callout. Type : " & .Type
            'Type 3
            Case msoChart
                it = "a Chart. Type : " & .Type
            'Type 4
            Case msoComment
                it = "a Comment. Type : " & .Type
            'Type 5
            Case msoFreeform
                it = "a Freeform. Type : " & .Type
            'Type 6
            Case msoGroup
                it = "a Group. Type : " & .Type
            ' If it's a group them iterate thru
            ' the items and list them
                it = it & vbCrLf & "Comprised of..."
                For Ctr = 1 To .GroupItems.Count
                    it = it & vbCrLf & _
                        .GroupItems(Ctr).Name & _
                        ". Type:" & .GroupItems(Ctr).Type
                Next Ctr
            'Type 7
            Case msoEmbeddedOLEObject
                it = "an Embedded OLE Object. Type : " & .Type
            'Type 8
            Case msoFormControl
                it = "a Form Control. Type : " & .Type
            'Type 9
            Case msoLine
                it = "a Line. Type : " & .Type
            'Type 10
            Case msoLinkedOLEObject
                it = "a Linked OLE Object. Type : " & .Type
                With .LinkFormat
                    it = it & vbCrLf & "My Source: " & _
                        .SourceFullName
                End With
            'Type 11
            Case msoLinkedPicture
                it = "a Linked Picture. Type : " & .Type
                With .LinkFormat
                    it = it & vbCrLf & "My Source: " & _
                        .SourceFullName
                End With
            'Type 12
            Case msoOLEControlObject
                it = "an OLE Control Object. Type : " & .Type
            'Type 13
            Case msoPicture
                it = "a embedded picture. Type : " & .Type
            'Type 14
            Case msoPlaceholder
                it = "a text placeholder (title or regular text--" & _
                     "not a standard textbox) object." & _
                     "Type : " & .Type
            'Type 15
            Case msoTextEffect
                it = "a WordArt (Text Effect). Type : " & .Type
            'Type 16
            Case msoMedia
                it = "a Media object .. sound, etc. Type : " & .Type
                With .LinkFormat
                    it = it & vbCrLf & " My Source: " & _
                    .SourceFullName
                End With
            'Type 17
            Case msoTextBox
                it = "a Text Box."
            'Type 18 = msoScriptAnchor, not defined in PPT pre-2000 so we use the numeric value
            'Case msoScriptAnchor
            Case 18
                it = " a ScriptAnchor. Type : " & .Type
            'Type 19 = msoTable, not defined in PPT pre-2000 so we use the numeric value
            'Case msoTable
            Case 19
                it = " a Table. Type : " & .Type
            'Type 19 = msoCanvas, not defined in PPT pre-2000 so we use the numeric value
            'Case msoCanvas
            Case 20
                it = " a Canvas. Type : " & .Type
            'Type 21 = msoDiagram, not defined in PPT pre-2000 so we use the numeric value
            'Case msoDiagram
            Case 22
                it = " a Diagram. Type : " & .Type
            'Type 22 = msoInk, not defined in PPT pre-2000 so we use the numeric value
            'Case msoInk
            Case 22
                it = " an Ink shape. Type : " & .Type
            'Type 23 = msoInkComment, not defined in PPT pre-2000 so we use the numeric value
            'Case msoInkComment
            Case 23
                it = " an InkComment. Type : " & .Type
            'Type -2
            Case msoShapeTypeMixed
                it = "a Mixed object (whatever that might be)." & _
                     "Type : " & .Type
            'Just in case
            Case Else
                it = "a mystery!? An undocumented object type?" & _
                        " Haven't found one of these yet!"
        End Select
        MsgBox ("I'm " & it)
        End With
    Next i
End Sub
PPT学习论坛
回复 支持 反对

使用道具 举报

21

主题

214

帖子

57

幻币

一流武者

Rank: 3Rank: 3

积分
283
QQ
2016-4-12 17:47:10 显示全部楼层
这段代码检索的是对象类型,不是对象索引号啊!
PPT学习论坛
回复 支持 反对

使用道具 举报

10

主题

173

帖子

30

幻币

一流武者

Rank: 3Rank: 3

积分
219
QQ
2016-4-12 17:59:16 显示全部楼层
楼上说得对,现在我还没有找索引号的对应属性,急等!
PPT学习论坛
回复 支持 反对

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册