找回密码
 注册
搜索
热搜: java php web
查看: 510|回复: 12

希望有高手介绍Powerpoint 2007 VBA方面的知识

[复制链接]
发表于 2009-9-30 10:17:55 | 显示全部楼层 |阅读模式
最近在学习office vba编程 我的任务是使用office vba实现自动生成powerpoint的文件来测试,但是由于office 2007里面VBA不能录制宏 ,因此很多地方写vba报错 不知道里面的对象 函数一些写法, 望高手指教!
 楼主| 发表于 2009-9-30 10:18:17 | 显示全部楼层
有没有熟悉这方面的 ?
回复

使用道具 举报

 楼主| 发表于 2009-9-30 10:20:43 | 显示全部楼层
Sub Macro1()
Dim SlidesCount As Variant
Dim nohidenum As Variant
nohidenum = 0

Dim folder As String
folder = "E:\"  'PPT FILE folder

Dim nextfilename As String

Dim filename As String
filename = Dir(folder + "*.PPT")
Open "E:\NEW.TXT" For Output As #1 'output txt file folder

Do While filename <> ""

nextfilename = folder + filename
Presentations.Open filename:=nextfilename, ReadOnly:=msoFalse
SlidesCount = ActiveWindow.Presentation.Slides.Count

nohidenum = 0
Do While SlidesCount > 0
        If ActiveWindow.Presentation.Slides(SlidesCount).SlideShowTransition.Hidden = msoFalse Then nohidenum = nohidenum + 1
        SlidesCount = SlidesCount - 1
Loop
ActiveWindow.Presentation.Close

'write file into
Print #1, filename
Print #1, nohidenum

filename = Dir

Loop
'close file
Close #1

End Sub
回复

使用道具 举报

 楼主| 发表于 2009-9-30 10:21:30 | 显示全部楼层
这个是我写的列出一个指定文件夹里面的PPT slide count到一个文本文件的宏
回复

使用道具 举报

 楼主| 发表于 2009-9-30 10:22:02 | 显示全部楼层
Sub listQSobject()
'define Folder
Dim Folder As String
Folder = "D:\QS\"  'QuickStart PPT FILE folder
'define fine name and get PPT file list from folder
Dim FileName As String
FileName = Dir(Folder + "*.PPT")

Dim NextFileName As String
' open current PPT file
'Presentations.Open FileName:=Folder + FileName, ReadOnly:=msoFalse
   
   
Do While FileName <> ""
    NextFileName = Folder + FileName
    Presentations.Open FileName:=NextFileName, ReadOnly:=msoFalse
    'SlidesCount = ActiveWindow.Presentation.Slides.Count
    Open NextFileName + ".txt" For Output As #1 'output txt file folder
   
    Dim shpTextArray() As Variant
    Dim numShapes, numAutoShapes, i As Long
    Dim MsgName, MsgText As String
    Dim MsgLeft, MsgRight As String
   
    Set myDocument = ActivePresentation.Slides(1)
        With myDocument.Shapes
            numShapes = .Count
            If numShapes > 1 Then
                numTextShapes = 0
                'ReDim shpTextArray(1 To 2, 1 To numShapes)
                For i = 1 To numShapes
                    If .Item(i).HasTextFrame Then
                        'numTextShapes = numTextShapes + 1
                        'shpTextArray(numTextShapes, 1) = .Item(i).Name
                        'shpTextArray(numTextShapes, 2) = .Item(i).TextFrame.TextRange.Text
                        MsgName = "AutoShap Name: " + .Item(i).Name
                        MsgText = "AutoShap Text: " + .Item(i).TextFrame.TextRange.Text
                        MsgLeft = "Left :" + Str(.Item(i).Left)
                        MsgRight = "Top: " + Str(.Item(i).Top)
                        'Response = MsgBox(MsgName, 0)
                        'Response = MsgBox(MsgText, 0)
                        'open file and write it
                        Print #1, MsgName
                        Print #1, MsgText
                        Print #1, MsgLeft
                        Print #1, MsgRight
                    End If
                Next
                'ReDim Preserve shpTextArray(1 To 2, 1 To numTextShapes)
            End If
        End With
    ActiveWindow.Presentation.Close
    FileName = Dir
    Close #1
Loop



End Sub
回复

使用道具 举报

 楼主| 发表于 2009-9-30 10:23:01 | 显示全部楼层
这个是我写的列出当前指定目录里面PPT文件的对象的一些属性 并且把它们输出到指定的文件!
回复

使用道具 举报

发表于 2009-10-6 21:07:52 | 显示全部楼层
ba ba afd asdf  asdflladsl fa sdf alsdfl asdlfa sdflkajfhasd faskd fasfha sdkfasf
回复

使用道具 举报

发表于 2009-10-7 23:18:14 | 显示全部楼层
我也需要
回复

使用道具 举报

发表于 2009-10-15 14:43:56 | 显示全部楼层
我也想交流一下
回复

使用道具 举报

发表于 2009-10-16 15:45:48 | 显示全部楼层
我也是啊
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-11-26 02:37

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表