ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 72694|回复: 334

[分享] ppt学习资料

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-12-11 13:53 | 显示全部楼层 |阅读模式
事件
本属性在 Microsoft PowerPoint 中返回一个空字符串,且其他环境不支持本属性。
ColorSchemeChanged事件
配色方案更改后发生此事件。
Private Sub object_ColorSchemeChanged(ByVal SldRange As SlideRange)
object 变量。该变量引用在类模块中以事件方式声明的Application 类型的对象。
SldRange 受更改影响的幻灯片范围。
说明
触发此事件的操作包括诸如修改幻灯片或幻灯片母版的配色方案或应用模板之类的操作。
若要访问 Application事件,请在代码的通用声明部分中声明一个 Application 变量。然后将此变量设置为要访问其事件的 Application对象。有关使用 Microsoft PowerPoint Application对象事件的信息,请参阅使用 Application对象的事件。
VBA示例
本示例在选定的单个或多个幻灯片的配色方案更改后显示一个消息。本示例假定一个称为 PPTApp 的 Application对象已使用 WithEvents 关键字进行声明。
Private Sub PPTApp_ColorSchemeChanged(ByVal SldRange As SlideRange)
    If SldRange.Count = 1 Then
        MsgBox "You've changed the color scheme for " _
            & SldRange.Name & "."
    Else
        MsgBox "You've changed the color scheme for " _
            & SldRange.Count & " slides."
    End If
End Sub
NewPresentation事件
在新建一份演示文稿后发生,同时将其添加到Presentations集合。
Private Sub application_NewPresentation(ByVal Pres As Presentation)
application  Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres  新演示文稿。
VBA示例
本示例使用 RGB函数将新演示文稿的幻灯片母版的背景色设置为粉红色,再将第三种配色方案应用于该新演示文稿。
Private Sub App_NewPresentation(ByVal Pres As Presentation)
    With Pres
        Set CS3 = .ColorSchemes(3)
        CS3.Colors(ppBackground).RGB = RGB(240, 115, 100)
        .SlideMaster.ColorScheme = CS3
    End With
End Sub
PresentationBeforeSave事件
保存演示文稿前发生此事件。
Private Sub object_PresentationBeforeSave(ByVal Pres As Presentation, Cancel As Boolean)
object 变量。该变量引用在类模块中以事件方式声明的Application 类型的对象。
Pres 将被保存的演示文稿。
Cancel 该参数为 True 时,取消保存过程。
说明
此事件在“另存为”对话框出现时触发。
若要访问 Application事件,请在代码的通用声明部分中声明一个 Application 变量。然后将此变量设置为要访问其事件的 Application对象。有关使用 Microsoft PowerPoint Application对象的事件的信息,请参阅使用 Application对象的事件。
VBA示例
本示例检查演示文稿中是否存在改动。如果存在改动,会询问是否保存演示文稿。如果用户的答复为不保存,将取消此保存过程。本示例假定一个称为 PPTApp 的 Application对象已使用 WithEvents 关键字进行声明。
Private Sub PPTApp_PresentationBeforeSave(ByVal Pres As Presentation, _
        Cancel As Boolean)
    Dim intResponse As Integer
    Set Pres = ActivePresentation
    If Pres.HasRevisionInfo Then
        intResponse = MsgBox(Prompt:="The presentation contains revisions. " & _
            "Do you want to accept the revisions before saving?", Buttons:=vbYesNo)
        If intResponse = vbYes Then
            Cancel = True
            MsgBox "Your presentation was not saved."
        End If
    End If
End Sub
PresentationClose事件
关闭任意打开的演示文稿时发生此事件,同时从Presentations集合中删除该演示文稿。
Private Sub application_PresentationClose(ByVal Pres As Presentation)
application  Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres  正在关闭的演示文稿。
VBA示例
本示例将活动演示文稿的一个副本保存为 HTML 文件,该文件具有相同的文件名且位于同一文件夹中。
Private Sub App_PresentationClose(ByVal Pres As Presentation)
    FindNum = InStr(1, Pres.FullName, ".")
    HTMLName = Mid(Pres.FullName, 1, FindNum - 1) _
        & ".htm"
    Pres.SaveCopyAs HTMLName, ppSaveAsHTML
End Sub
PresentationNewSlide事件
在任意打开的演示文稿中新建幻灯片时发生此事件,同时新演示文稿会添加到Slides集合中。
Private Sub application_PresentationNewSlide(ByVal Sld As Slide)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Sld   新幻灯片。
VBA示例
本示例修改第三种配色方案的背景色,再将修改后的配色方案应用于新幻灯片。接下来,如果第一个形状具有文本框,则向该形状添加默认文本。
Private Sub App_PresentationNewSlide(ByVal Sld As Slide)
    With ActivePresentation
        Set CS3 = .ColorSchemes(3)
        CS3.Colors(ppBackground).RGB = RGB(240, 115, 100)
        Windows(1).Selection.SlideRange.ColorScheme = CS3
    End With
    If Sld.Layout <> ppLayoutBlank Then
        With Sld.Shapes(1)
            If .HasTextFrame = msoTrue Then
               .TextFrame.TextRange.Text = "King Salmon"
            End If
        End With
    End If
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:54 | 显示全部楼层
PresentationOpen事件
打开已存在的演示文稿时发生此事件,同时该演示文稿会添加到Presentations集合中。
Private Sub application_PresentationOpen(ByVal Pres As Presentation)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   打开的演示文稿。
VBA示例
本示例修改第三种配色方案的背景色,再将修改后的配色方案应用于刚打开的演示文稿,并在幻灯片视图中显示该演示文稿。
Private Sub App_PresentationOpen(ByVal Pres As Presentation)
    With Pres
        Set CS3 = .ColorSchemes(3)
        CS3.Colors(ppBackground).RGB = RGB(240, 115, 100)
        With Windows(1)
            .Selection.SlideRange.ColorScheme = CS3
            .ViewType = ppViewSlide
        End With
    End With
End Sub
PresentationPrint事件
打印演示文稿前发生此事件。
Private Sub application_PresentationPrint(ByVal Pres As Presentation)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   要打印的演示文稿。
VBA示例
本示例将 PrintHiddenSlides属性设置为 True,这样每次打印活动演示文稿时,也会打印隐藏的幻灯片。
Private Sub App_PresentationPrint(ByVal Pres As Presentation)
    Pres.PrintOptions.PrintHiddenSlides = True
End Sub
PresentationSave事件
保存任意打开的演示文稿前发生此事件。
Private Sub application_PresentationSave(ByVal Pres As Presentation)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   要保存的演示文稿。
VBA示例
本示例将当前演示文稿保存为 HTML 4.0 类型的文件,其文件名为“mallard.htm”。然后显示一条消息,表明当前文件名的演示文稿同时保存为 PowerPoint 和 HTML 两种格式。
Private Sub App_PresentationSave(ByVal Pres As Presentation)
    With Pres.PublishObjects(1)
        PresName = .SlideShowName
        .SourceType = ppPublishAll
        .FileName = "C:\HTMLPres\mallard.htm"
        .HTMLVersion = ppHTMLVersion4
        MsgBox ("Saving presentation " & "'" _
            & PresName & "'" & " in PowerPoint" _
            & Chr(10) & Chr(13) _
            & " format and HTML version 4.0 format")
        .Publish
    End With
End Sub
SlideSelectionChanged事件
此事件发生的时间取决于当前视图。
视图        说明
普通视图、母版视图        更改幻灯片窗格中的幻灯片时发生。
幻灯片浏览视图        更改选取的幻灯片时发生。
幻灯片视图、备注视图        更改幻灯片时发生。
大纲视图        不发生事件。
Private Sub object_SlideSelectionChanged(ByVal SldRange As SlideRange)
object 变量。该变量引用类模块中以事件方式声明的Application 类型的对象。
SldRange 幻灯片的选择。多数情况下为单张幻灯片(例如,在幻灯片视图中切换到下一张幻灯片),但某些情况下也可能是多张幻灯片(例如,幻灯片浏览视图中的选取框选取)。
说明
若要访问 Application事件,请在代码的通用声明部分中声明一个 Application 变量。然后将此变量设置为等于要访问其事件的 Application对象。有关使用 Microsoft PowerPoint Application对象的事件的信息,请参阅使用 Application对象的事件。
VBA示例
本示例中,每当用户选取一个不同的幻灯片时都将显示一条消息。本示例假设一个称为 PPTApp 的 Application对象已使用 WithEvents 关键字声明。
Private Sub PPTApp_SlideSelectionChanged(ByVal SldRange As SlideRange)
    MsgBox "Slide selection changed."
End Sub
SlideShowBegin事件
当启动幻灯片放映时发生此事件。Microsoft PowerPoint 创建幻灯片放映窗口并将其传递给此事件。如果从某个幻灯片放映切换到另一个幻灯片放映,则第二个幻灯片放映开始时,将不再发生 SlideShowBegin事件。
Private Sub application_SlideShowBegin(ByVal Wn As SlideShowWindow)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Wn   在此事件发生前经过初始化的幻灯片放映窗口。
VBA示例
本示例调整幻灯片放映窗口的大小和位置,再重新激活该窗口。
Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
    With Wn
        .Height = 325
        .Width = 400
        .Left = 100
        .Activate
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:55 | 显示全部楼层
SlideShowEnd事件
本事件幻灯片放映结束后——即最后一个SlideShowNextSlide事件后发生。
Private Sub application_SlideShowEnd(ByVal Pres As Presentation)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   当发生此事件时关闭演示文稿。
说明
如果SlideShowBegin事件已发生,则 SlideShowEnd事件总发生在幻灯片放映结束之前。用户可使用 SlideShowEnd事件将 SlideShowBegin事件中发生的任何属性设置和变量初始值恢复到最初的设置。
VBA示例
本示例在幻灯片放映结束时关闭从第一张到第四张幻灯片的条目效果和自动定时换片幻灯片放映切换效果。本示例也将幻灯片设置为手动换片。
Private Sub App_SlideShowEnd(ByVal Pres As Presentation)
    With Pres.Slides.Range(Array(1, 4)) _
            .SlideShowTransition
        .EntryEffect = ppEffectNone
        .AdvanceOnTime = msoFalse
    End With
    With Pres.SlideShowSettings
        .AdvanceMode = ppSlideShowManualAdvance
    End With
End Sub
SlideShowNextBuild事件
当鼠标单击或定时动画启动时发生此事件,但在动画对象出现时结束。
Private Sub application_SlideShowNextBuild(ByVal Wn As SlideShowWindow)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Wn   活动幻灯片放映窗口。
VBA示例
如果第一张幻灯片上的当前形状是影片,本示例将持续播放该影片直到演示人员手动停止播放为止。此代码用于第二个 SlideShowNextSlide事件示例。
Private Sub App_SlideShowNextBuild(ByVal Wn As SlideShowWindow)
    If EvtCounter <> 0 Then
        With ActivePresentation.Slides(1) _
                .Shapes(shpAnimArray(2, EvtCounter))
            If .Type =msoMedia Then
                If .MediaType = ppMediaTypeMovie
                    .AnimationSettings.PlaySettings _
                        .LoopUntilStopped
                End If
            End If
        End With
    End If
        EvtCounter = EvtCounter + 1
End Sub
SlideShowNextClick事件
在幻灯片上下次单击时发生。
Private Sub application_SlideShowNextClick(ByVal Wn As SlideShowWindow, ByVal nEffect As Effect)
application  在类模块中以事件方式声明的 Application 类型对象。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Wn  在此事件发生前经过初始化的幻灯片放映窗口。
nEffect  下次单击时显示的动画效果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:55 | 显示全部楼层
SlideShowNextSlide事件
切换到下一张幻灯片立刻发生此事件。对于第一张幻灯片,此事件紧跟在SlideShowBegin事件之后发生。
Private Sub application_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Wn   活动幻灯片放映窗口。
VBA示例
本示例确定了发生 SlideShowNextSlide事件后幻灯片的位置。如果下一张幻灯片是第三张幻灯片,则本示例将鼠标指针的类型更改为笔形且颜色更改为红色。
Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
   Dim Showpos As Integer
   Showpos = Wn.View.CurrentShowPosition + 1
      If Showpos = 3 Then
         With ActivePresentation.SlideShowSettings.Run.View
            .PointerColor.RGB = RGB(255, 0, 0)
            .PointerType = ppSlideShowPointerPen
         End With
      Else
         With ActivePresentation.SlideShowSettings.Run.View
            .PointerColor.RGB = RGB(0, 0, 0)
            .PointerType = ppSlideShowPointerArrow
         End With
      End If
End Sub
本示例将全局计数器变量的值设置为 0。然后计算此事件后幻灯片上的形状个数,确定哪些形状具有动画,并用每个形状的动画顺序和编号填充全局数组。
注意   本示例中创建的数组还用于 SlideShowNextBuild事件示例中。
Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
   Dim i as Integer, j as Integer, numShapes As Integer
   Dim objSld As Slide
   Set objSld = ActivePresentation.Slides _
        (ActivePresentation.SlideShowWindow.View _
        .CurrentShowPosition + 1)
      With objSld.Shapes
         numShapes = .Count
         If numShapes > 0 Then
            j = 1
            ReDim shpAnimArray(1 To 2, 1 To numShapes)
            For i = 1 To numShapes
               If .Item(i).AnimationSettings.Animate Then
                  shpAnimArray(1, j) = _
                     .Item(i).AnimationSettings.AnimationOrder
                     shpAnimArray(2, j) = i
                     j = j + 1
               End If
            Next
         End If
      End With
End Sub
WindowActivate事件
当激活某个应用程序窗口或任意文档窗口时发生此事件。
Private Sub application_WindowActivate(ByVal Pres As Presentation, ByVal Wn As DocumentWindow)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   在活动窗口中显示的演示文稿。
Wn   已激活的文档窗口。
VBA示例
本示例在幻灯片浏览视图中打开每一个已激活的演示文稿。
Private Sub App_WindowActivate (ByVal Pres As Presentation, ByVal Wn As DocumentWindow)
    Wn.ViewType = ppViewSlideSorter
End Sub
WindowBeforeDoubleClick事件
当双击下表列出的视图中的项目时发生此事件。
视图        项目
普通或幻灯片视图        形状
幻灯片浏览视图        幻灯片
备注页视图        幻灯片图像
除非将 Cancel参数设置为 True,否则在发生此事件后将产生默认的双击动作。
Private Sub application_WindowBeforeDoubleClick(ByVal Sel As Selection, ByVal Cancel As Boolean)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Sel   双击时鼠标指针以下所选定的区域。
Cancel  此事件发生时,为 False。如果事件过程将此参数设置为 True,则完成此过程后,不会执行默认的双击动作。
VBA示例
在幻灯片浏览视图中,默认双击任何幻灯片都会转到幻灯片视图。在本示例中,如果活动演示文稿显示在幻灯片浏览视图中,则 WindowBeforeDoubleClick事件抢占为默认动作。事件过程会将视图切换为普通视图,然后通过将 Cancel参数设置为 True 来取消切换到幻灯片视图。
Private Sub App_WindowBeforeDoubleClick (ByVal Sel As Selection, ByVal Cancel As Boolean)
    With Application.ActiveWindow
        If .ViewType = ppViewSlideSorter Then
           .ViewType = ppViewNormal
            Cancel = True
        End If
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:56 | 显示全部楼层
WindowBeforeRightClick事件
当用鼠标右键单击某个形状、幻灯片、备注页或文本时发生此事件。此事件由 MouseUp事件触发。
Private Sub application_WindowBeforeRightClick(ByVal Sel As Selection, ByVal Cancel As Boolean)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Sel   鼠标右键单击时于鼠标指针以下的选定区域。
Cancel   当此事件发生时,为 False。如果事件过程将此参数设置为 True,则完成此过程后不会出现默认的快捷菜单。
VBA示例
本示例创建选定形状的一个副本。如果该形状有文本框,则将文本“Duplicate Shape”添加到新形状中。将 Cancel参数设置为 True 可以避免出现快捷菜单。
Private Sub App_WindowBeforeRightClick (ByVal Sel As Selection, ByVal Cancel As Boolean)
    With ActivePresentation.Selection.ShapeRange
        If .HasTextFrame Then
            .Duplicate.TextFrame.TextRange.Text = "Duplicate Shape"
        Else
            .Duplicate
        End If
        Cancel = True
    End With
End Sub
WindowDeactivate事件
当对应用程序窗口或任意文档窗口取消活动状态时发生此事件。
Private Sub application_WindowDeactivate(ByVal Pres As Presentation, ByVal Wn As DocumentWindow)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Pres   在非活动窗口中显示的演示文稿。
Wn   非活动文档窗口。
VBA示例
本示例查找非活动窗口中演示文稿的文件名(不含扩展名)。然后向该文件名添加 .htm 扩展名,并将其作为 Web 页保存在演示文稿所在的同一文件夹中。
Private Sub App_WindowDeactivate (ByVal Pres As Presentation, ByVal Wn As DocumentWindow)
    FindNum = InStr(1, Wn.Presentation.FullName, ".")
    If FindNum = 0 Then
        HTMLName = Wn.Presentation.FullName & ".htm"
    Else
        HTMLName = Mid(Wn.Presentation.FullName, 1, FindNum - 1) _
            & ".htm"
    End If
    Wn.Presentation.SaveCopyAs HTMLName, ppSaveAsHTML
    MsgBox "Presentation being saved in HTML format as " _
        & HTMLName & " ."
End Sub
WindowSelectionChange事件
当活动文档窗口中选取的文本、形状或幻灯片发生更改时(通过用户界面或通过代码),会发生此事件。
Private Sub application_WindowSelectionChange(ByVal Sel As Selection)
application   Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application对象的事件的详细信息,请参阅使用 Application对象的事件。
Sel   代表选取的对象。
VBA示例
本示例确定何时选取另一个幻灯片和更改新选取的幻灯片的背景色。
Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
    With Sel
        If .Type = ppSelectionNone Then
            With .SlideRange(1)
                .ColorScheme.Colors(ppBackground).RGB = _
                    RGB(240, 115, 100)
            End With
        End If
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:57 | 显示全部楼层
在文档中添加控件
若要在文档中添加控件,请显示“工具箱”,再单击要添加的控件,然后单击文档。拖动控件的调节控点直到控件的轮廓大小和形状符合要求。
注意  从窗体中将一个控件(或一组控件)拖回到“工具箱”将创建该控件的一个模板,该模板可以重复使用。对实现应用程序的标准外观来说,这是一个有用的功能。
控件和对话框事件
向对话框或文档中添加控件后,需要添加事件过程来决定该控件响应用户操作的方式。
用户窗体和控件具有预设的事件集。例如,命令按钮具有 Click事件(在用户单击该命令按钮时发生),而用户窗体具有 Initialize事件(在加载窗体时运行)。
若要编写控件或窗体事件过程,请双击窗体或控件打开模块,然后从“过程”下拉列表框中选择一个事件。
事件过程包含控件的名称。例如,命令按钮 Command1 的 Click事件过程的名称为 Command1_Click。
如果为事件过程添加代码后更改该控件的名称,这些代码仍保留使用原名称的过程中。
例如,假设在 Commmand1 的 Click事件中添加代码,然后将该控件重命名为 Command2。双击 Command2 时,在 Click事件过程中看不到任何代码。需要将 Command1_Click 中的代码移到 Command2_Click。
为了简化开发过程,最好在编写代码之前先命名好控件。
在一个 Microsoft Office 应用程序中控制另一个 Microsoft Office 应用程序
如果要在一个 Microsoft Office 应用程序中运行使用另一个应用程序中对象的代码,请遵循下列步骤:
在“引用”对话框(“工具”菜单)中,设置对其他应用程序的类型库的引用。设置引用后,对象、属性和方法将显示在对象浏览器中并且将在编译时检查语法。此外,您还可以获得有关它们的快捷帮助。
将对象变量声明为特定类型,该对象变量将引用其他应用程序中的对象。请确保在声明变量时一定要使用提供对象的应用程序的名称。例如,下面的语句声明一个指向 Microsoft Word 文档的变量和一个指向 Microsoft Excel 应用程序的变量。
Dim appWD As Word.Application, wbXL As Excel.Application
注意  如果希望代码及早绑定,必须执行上述步骤。
将 New 关键字和要使用的其他应用程序中对象的OLE 程序标识符 联合使用,如以下示例所示。如果要显示其他应用程序的会话过程,请将 Visible属性设为 True。
Dim appWD As Word.Application
Set appWD = New Word.Application
appWd.Visible = True
将属性和方法应用于包含在变量中的对象。例如,下面的指令将新建一个 Word 文档。
Dim appWD As Word.Application
Set appWD = New Word.Application
appWD.Documents.Add
结束对这个应用程序的操作后,请使用 Quit方法将其关闭,如以下示例所示。
appWd.Quit
创建自定义对话框
请遵循以下过程创建自定义对话框:
创建用户窗体
在“Visual Basic 编辑器”的“插入”菜单上,单击“用户窗体”。
在用户窗体中添加控件
在“工具箱”中找到要添加的控件并将其拖到窗体上。
设置控件属性
在设计模式下,用鼠标右键单击控件,并单击“属性”以显示属性窗口。
初始化控件
可以在显示窗体之前的一个过程中初始化控件,或者为窗体的 Initialize事件添加代码。
编写事件过程
所有控件有预定义的事件集。例如,命令按钮有 Click事件,该事件在用户单击该命令按钮时发生。可以编写事件发生时运行的事件过程。
显示对话框
使用 Show方法显示用户窗体。
在代码运行时使用控件值
有些属性可以在运行时设置。关闭对话框时,用户对对话框所做的更改将丢失。
创建用户窗体
若要创建自定义对话框,必须创建用户窗体。若要创建用户窗体,请单击“Visual Basic 编辑器”中“插入”菜单上的“用户窗体”。
使用“属性”窗口更改窗体的名称、行为和外观。例如,若要更改一个窗体的标题,请设置 Caption属性。
显示自定义对话框
若要在“Visual Basic 编辑器”中测试对话框,请在“Visual Basic 编辑器”的“运行”菜单上单击“运行子过程/用户窗体”。
若要显示 Visual Basic 中的对话框,请使用 Show方法。以下示例显示名为 UserForm1 的对话框。
Private Sub GetUserName()
    UserForm1.Show
End Sub
获得有关 Macintosh 关键字的帮助
您所查询的帮助是只能在 Macintosh 上使用的 Visual Basic 关键字的帮助。有关此关键字的信息,请参阅 Microsoft Office Macintosh Edition 中的语言参考帮助。
初始化控件属性
可以在运行时初始化控件,方法是在宏中使用 Visual Basic 代码。例如,可以填写列表框,设置文本值,或设置选项按钮。
以下示例使用 AddItem方法向列表框中添加数据。然后它设置文本框的值并显示窗体。
Private Sub GetUserName()
    With UserForm1
        .lstRegions.AddItem "North"
        .lstRegions.AddItem "South"
        .lstRegions.AddItem "East"
        .lstRegions.AddItem "West"
        .txtSalesPersonID.Text = "00000"
        .Show
        ' ...
    End With
End Sub
也可以使用窗体的 Initialize事件中的代码设置窗体中控件的初始值。在 Initialize事件中设置控件初始值的优点是初始化代码与窗体放在一起。可以将窗体复制到另一个项目,当运行 Show方法以显示对话框时,控件将被初始化。
Private Sub UserForm_Initialize()
    With UserForm1
        With .lstRegions
           .AddItem "North"
            .AddItem "South"
            .AddItem "East"
            .AddItem "West"
        End With
        .txtSalesPersonID.Text = "00000"
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:58 | 显示全部楼层
发布 Web 演示文稿
在 Microsoft PowerPoint 中,可以将演示文稿直接发布到 Web 服务器上,并且可以直接在 PowerPoint 中编辑 HTML 文档。
将演示文稿保存为 Web 页
将演示文稿保存为 Web 页是一个创建并保存 HTML 格式的演示文稿的过程。若要完成此操作,请使用SaveAs方法。以下示例将当前演示文稿保存为 c:\myfile.htm。
ActivePresentation.SaveAs "c:\myfile.htm", ppSaveAsHTMLv3, msoTrue
发布 Web 演示文稿
发布 Web 演示文稿是一个创建 HTML 格式的演示文稿,并使用Publish方法将其保存到 Web 服务器或文件服务器上的过程。此方法与使用 SaveAs方法将演示文稿保存为 Web 页的不同之处在于:使用此方法可在发布 Web 演示文稿时通过设置不同的属性来自定义演示文稿,并且可以将演示文稿直接发布到 Web 服务器上。在本示例中,设置WebOptions对象的不同属性之后,将当前演示文稿发布到 URL 地址为 http://www.someones.homepage/mallard.htm 的 Web 服务器上。
With ActivePresentation
    With .WebOptions
        .FrameColors = ppFrameColorsWhiteTextOnBlack
        .RelyonVML = True
        .OrganizeInFolder = True
    End With
    With .PublishObjects(1)
        .FileName = "http://www.someones.homepage/mallard.htm"
        .SourceType = ppPublishAll
        .SpeakerNotes = True
        .Publish
    End With
End With
Web 选项和默认 Web 选项
使用 Publish方法时,可以通过设置DefaultWebOptions对象和WebOptions对象的属性自定义 HTML 文档的外观、内容、浏览器支持、编辑支持、图形格式、屏幕分辨率、文件组织和编码。DefaultWebOptions对象包含应用程序级的属性。而这些设置将被包含在 WebOptions对象中演示文稿级的同名属性设置所覆盖。
本示例为 Web 发布设置各种应用程序级的属性。而这些设置将作为任何当前或以后加载的演示文稿的默认设置,直到它们被再次更改。接着,后面的代码将重新设置当前演示文稿的ResizeGraphics属性,以覆盖应用程序级的默认设置。本示例将当前演示文稿发布为“c:\mallard.htm”。
With Application.DefaultWebOptions
    .FrameColors = ppFrameColorsWhiteTextOnBlack
    .IncludeNavigation = False
    .ResizeGraphics = True
End With
With ActivePresentation
    .WebOptions.ResizeGraphics = False
    With .PublishObjects(1)
        .FileName = "c:\mallard.htm"
        .SourceType = ppPublishAll
        .SpeakerNotes = True
        .Publish
    End With
End With
在 PowerPoint 中打开 HTML 文档
若要在 PowerPoint 中编辑 HTML 文档,请使用Open方法打开该 HTML 文档。本示例打开名为“myfile.htm”的文件以用于编辑。
Presentations.Open Filename:="c:\Windows\myfile.htm"
返回集合中的对象
Item方法返回集合中的单个对象。以下示例将firstPres 变量设为代表第一个演示文稿的Presentation对象。
Set firstPres = Presentations.Item(1)
Item方法是大部分集合的默认方法,因此可以省略 Item 关键字,这样可使同样的语句更简明。
Set firstPres = Presentations(1)
有关指定集合的详细信息,请参阅该集合或其 Item方法的帮助主题。
命名对象
尽管通常可以用 Item方法指定一个整数值,但以名称返回一个对象可能更方便。许多对象在创建时自动被赋予一个名称。例如,创建的第一张幻灯片将被自动命名为“Slide1”。如果创建的前两个形状为矩形和椭圆,它们的默认名称为“Rectangle 1”和“Oval 2”。如果要给对象赋予更有意义的名称便于以后引用,可以设置对象的Name属性。以下示例在添加一张幻灯片时为其设置一个有意义的名称。这样,就可使用该名称代替索引号以引用该幻灯片。
ActivePresentation.Slides.Add(1, 1).Name = "Home Page Slide"
With ActivePresentation.Slides("Home Page Slide")
    .FollowMasterBackground = False
    .Background.Fill.PresetGradient _
        msoGradientDiagonalDown, 1, msoGradientBrass
End With
预定义索引值
某些集合有预定义索引值,可以使用这些值返回单个对象。每个预定义索引值由一个常数表示。例如,使用TextStyles集合的 Item方法指定一个 PpTextStyleType 常数可返回一个文本样式。
以下示例设置当前演示文稿中幻灯片的正文区域的边距。
With ActivePresentation.SlideMaster _
        .TextStyles(ppBodyStyle).TextFrame
    .MarginBottom = 50
    .MarginLeft = 50
    .MarginRight = 50
    .MarginTop = 50
End With

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在代码运行时使用控件值
有些控件属性可以在 Visual Basic 代码运行时设置和返回。以下示例将一个文本框的Text属性设为“Hello”。
TextBox1.Text = "Hello"
关闭窗体时,用户在窗体中输入的数据将丢失。如果在卸载窗体后返回其中控件的值,则得到的是控件的初始值而非用户输入的值。
如果要保存在窗体中输入的数据,可以当窗体还在运行时将该信息保存到模块级变量中。以下示例显示一个窗体并保存窗体数据。
'Code in module to declare public variables
Public strRegion As String
Public intSalesPersonID As Integer
Public blnCancelled As Boolean
'Code in form
Private Sub cmdCancel_Click()
    Module1.blnCancelled = True
    Unload Me
End Sub
Private Sub cmdOK_Click()
    'Save data
    intSalesPersonID = txtSalesPersonID.Text
    strRegion = lstRegions.List(lstRegions.ListIndex)
    Module1.blnCancelled = False
    Unload Me
End Sub
Private Sub UserForm_Initialize()
    Module1.blnCancelled = True
End Sub
'Code in module to display form
Sub LaunchSalesPersonForm()
    frmSalesPeople.Show
    If blnCancelled = True Then
        MsgBox "Operation Cancelled!", vbExclamation
    Else
        MsgBox "The Salesperson's ID is: " &
            intSalesPersonID & _
            "The Region is: " & strRegion
    End If
End Sub
设置控件属性
可以在设计时(运行任何宏之前)设置一些控件属性。在设计模式下,使用鼠标右键单击一个控件并单击“属性”以显示“属性”窗口。属性名称将显示在窗口中的左列,属性值显示在右列。可在属性名称的右边输入新值以设置属性值。
在幻灯片中使用 ActiveX 控件
可以在幻灯片中添加控件,从而提供一种完善的方法在幻灯片放映时与用户交换信息。例如,在为展台所设计的幻灯片中可以使用控件,使观众能选择选项,然后基于观众的选项运行自定义放映。
有关添加和使用控件的一般信息,请参阅在文档中使用 ActiveX 控件和创建自定义对话框。
在幻灯片中使用控件时,请记住以下几点:
除了在幻灯片放映运行时,幻灯片中的控件都处于设计模式。
如果希望控件显示在演示文稿的所有幻灯片中,可以将其添加到幻灯片母版中。
幻灯片中控件事件过程的 Me 关键字指向幻灯片,而非控件。
为幻灯片的控件编写事件代码与为窗体的控件编写事件代码非常类似。单击幻灯片按钮“cmdChangeColor”时,以下过程设置该按钮所在的幻灯片的背景为激活状态。
Private Sub cmdChangeColor_Click()
    With Me
        .FollowMasterBackground = Not .FollowMasterBackground
        .Background.Fill.PresetGradient _
            msoGradientHorizontal, 1, msoGradientBrass
    End With
End Sub
您可能需要使用控件为幻灯片提供比 Microsoft PowerPoint 内置工具更复杂的漫游工具。例如,如果在幻灯片母版中添加两个名为“cmdBack”和“cmdForward”的按钮,并为其编写下面的代码,所有基于该母版(并设为显示幻灯片母版背景图形)的幻灯片在放映幻灯片时,将激活这些看起来非常专业化的导航按钮。
Private Sub cmdBack_Click()
    Me.Parent.SlideShowWindow.View.Previous
End Sub
Private Sub cmdForward_Click()
    Me.Parent.SlideShowWindow.View.Next
End Sub
若要在不影响幻灯片中其他形状的情况下操作所有 ActiveX 控件,可以创建一个只包含控件的ShapeRange集合。然后可以对整个集合应用属性和方法,或对集合进行重复操作以单独使用每个控件。以下示例将当前演示文稿中第一张幻灯片的所有控件对齐并垂直排列。
With ActivePresentation.Slides(1).Shapes
    numShapes = .Count
    If numShapes > 1 Then
        numControls = 0
        ReDim ctrlArray(1 To numShapes)
        For i = 1 To numShapes
            If .Item(i).Type = msoOLEControlObject Then
                numControls = numControls + 1
                ctrlArray(numControls) = .Item(i).Name
            End If
        Next
        If numControls > 1 Then
            ReDim Preserve ctrlArray(1 To numControls)
            Set ctrlRange = .Range(ctrlArray)
            ctrlRange.Distribute msoDistributeVertically, True
            ctrlRange.Align msoAlignLefts, True
        End If
    End If
End With

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 13:59 | 显示全部楼层
使用 Application对象的事件
若要为Application对象的事件创建事件句柄,需要完成以下三个步骤:
在类模块中声明一个对象变量以响应事件。
编写特定的事件过程。
在另一模块中初始化声明的对象。
声明对象变量
在为 Application对象的事件编写过程之前,必须新建一个类模块,然后声明一个具有事件的 Application 类型的对象。例如,假设已新建一个类模块且其名称为 EventClassModule。该新类模块包含以下代码。
Public WithEvents App As Application
编写事件过程
声明具有事件的新对象之后,该对象就会出现在类模块的“对象”列表中,然后就可以为此新对象编写事件过程。(当在“对象”列表中选择新对象时,“过程”列表中就会列出该对象的有效事件。)从“过程”列表中选择一个事件;就会在类模块中添加一个空过程。
Private Sub App_NewPresentation()
End Sub
初始化声明的变量
在过程运行之前,必须将类模块中声明的对象(本示例中为 App)与 Application对象相连。用户可以在任意模块中使用以下代码实现此处理过程。
Dim X As New EventClassModule
Sub InitializeApp()
    Set X.App = Application
End Sub
运行 InitializeApp 过程。当运行此过程后,类模块中的 App对象就会指向 Microsoft PowerPoint 的 Application对象,然后当事件发生时,类模块中的事件过程就会运行。
在文档中使用 ActiveX 控件
如同可以向自定义对话框中添加 ActiveX控件一样,当需要提供一种完善的交互方式以使用户能够不通过对话框而直接访问宏时,可以直接在文档中添加控件。使用以下过程在文档中添加 ActiveX 控件。有关使用 ActiveX 控件的详细信息,请参阅在幻灯片中使用 ActiveX 控件。
在文档中添加控件
显示“工具箱”,单击要添加的控件,然后单击文档
设置控件属性
在设计模式下,用鼠标右键单击控件,并单击“属性”以显示“属性”窗口。
初始化控件
可以在某个过程中初始化控件。
编写事件过程
所有控件都包含预定义的事件集。例如,命令按钮包含 Click事件,该事件在用户单击此命令按钮时发生。可以编写事件发生时运行的事件过程。
在代码运行时使用控件值
有些属性可以在运行时设置。
使用形状(绘图对象)
形状或绘图对象由三种不同的对象表示:Shapes集合、ShapeRange集合和Shape对象。通常,Shapes集合用于创建形状并对幻灯片中的所有形状进行重复操作;Shape对象用于修改单个形状;而 ShapeRange集合用于修改多个形状,就象在用户界面中使用多个选定的形状一样。
设置形状的属性
形状的许多格式属性不是由直接应用于 Shape 或 ShapeRange对象的属性设置的。相反,相关的形状属性在第二级对象内进行组合。例如FillFormat对象,其中包含了与形状填充相关的所有属性;又如LinkFormat对象,其中包含了链接的 OLE对象的所有特有属性。若要设置一个形状的属性,必须先返回代表相关形状属性的对象,然后设置该返回的对象的属性。例如,使用Fill属性返回 FillFormat对象,然后设置 FillFormat对象的ForeColor属性,从而设置指定形状的前景填充色,如以下示例所示。
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
同时对多个形状应用属性或方法
在用户界面中,有些操作可以对选定的多个形状执行;例如,可以选定多个形状并同时设置它们各自的填充。其他些操作则只能对选定的单个形状执行;例如,只有选定单个形状时才能编辑其中的文本。
在 Visual Basic 中,对一组形状应用属性和方法有两种方式。这两种方式使您可以对若干形状执行在单个形状上能执行的所有操作,而不管是否可以在用户界面上执行这些操作。
如果该操作在用户界面上影响多个选定的形状,则要在 Visual Basic 中执行该操作时,只需先建立一个包含要使用的形状的 ShapeRange集合,然后直接对该 ShapeRange集合应用适当的属性和方法。
如果该操作在用户界面上不影响多个选定的形状,仍然可以在 Visual Basic 中执行该操作。方法是:在包含要使用的形状的 Shapes集合或 ShapeRange集合中执行循环,并对集合中的单个 Shape对象应用适当的属性和方法。
许多应用于 Shape对象和 ShapeRange集合的属性和方法在用于特定形状时会失败。例如,如果将TextFrame属性应用于不能包含文本的形状,将会失败。如果不能确定特定的属性或方法对 ShapeRange集合中的每个形状都能应用,则不要对 ShapeRange集合应用于该属性或方法。如果确实要对形状集合应用一个这样的属性或方法,则必须在应用之前逐个测试集合中的每个形状,以确保形状的类型与所应用的属性和方法相匹配。
对 ShapeRange集合应用属性和方法
如果可以同时在用户界面上对多个选定的形状执行某种操作,则可以通过编程的方式创建一个 ShapeRange集合,再应用适当的属性和方法以执行该操作。以下示例在myDocument 中创建一个包含自选图形“Big Star”和“Little Star”的形状区域,并对它们应用过渡填充。
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
    .Range(Array("Big Star", "Little Star"))
myRange.Fill.PresetGradient msoGradientHorizontal, _
    1, msoGradientBrass
下面是将属性和方法应用于 ShapeRange集合的一般原则。
将方法应用于集合等于对集合中的每个 Shape对象都应用该方法。
设置集合的属性值等于设置该范围内每个形状的属性值。
如果集合中所有形状的某一返回常数的属性值相同,则集合的该属性将返回单个形状的该属性值。如果集合中所有形状的该属性值不相同,则返回“mixed”常数。
如果集合中所有形状的某一返回简单数据类型的属性值相同(例如 Long、Single 或 String),集合的该属性将返回单个形状的该属性值。
有些属性值仅当集合中有且只有一个形状时才能返回或设置。如果集合中有一个以上的形状,将发生运行时错误。此情况通常在用户界面中的等价操作只能用于单个形状时(例如,编辑形状中的文本或编辑任意多边形的点)发生。
设置组合在 ShapeRange集合第二级对象中的形状的属性时,上述原则同样适用。例如 FillFormat对象。如果第二级对象代表可在用户界面中对多个选定对象执行的操作,则可以从 ShapeRange集合返回该对象并设置其属性。例如,可以使用 Fill属性返回 FillFormat对象,该对象代表 ShapeRange集合中所有形状的填充。设置该 FillFormat对象的属性将设置 ShapeRange集合中所有形状的相同属性。
循环 Shapes 或 ShapeRange集合
选择多个形状并执行某个命令,即使无法在用户界面中同时对多个形状执行一个操作,但可以用编程方式执行相同的操作。方法是:在包含要使用的形状的 Shapes集合或 ShapeRange集合中执行循环,然后对集合中的单个 Shape对象应用适当的属性和方法。以下示例逐个检查myDocument 中的所有形状,并在每个自选图形中添加文本。
Set myDocument = ActivePresentation.Slides(1)
For Each sh In myDocument.Shapes
    If sh.Type = msoAutoShape Then
            sh.TextFrame.TextRange.InsertAfter " (version 1)"
    End If
Next
以下示例创建包含当前窗口中所有选定形状的 ShapeRange集合,并为集合中每个能够包含文本的形状设置文本。
For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next
在形状区域中对齐、布置、分组形状
使用Align 和Distribute方法定位一组形状的相互位置或相对于包含它们的文档的位置。使用Group方法或Regroup方法从多个形状中创建单个形状组。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-11 14:00 | 显示全部楼层
使用窗格和视图
更改当前视图
可以使用ViewType属性返回或设置当前文档窗口中的当前视图。本示例将当前文档窗口中的视图更改为幻灯片视图。
ActiveWindow.ViewType = ppViewSlide
更改普通视图中的窗格
在普通视图中,可以使用当前Pane对象的 ViewType属性返回当前窗格。ViewType属性将返回下列标识当前窗格的 PpViewType 类型常数之一:ppViewNotesPage、ppViewOutline 或 ppViewSlide。所有其他视图都只有一个窗格,且 ViewType属性返回与当前文档窗口相同的 PpViewType 类型常数值。
可以通过设置 ViewType属性或使用Activate方法激活窗格。本示例返回标识当前视图和当前窗格的 ViewType属性值。如果当前视图是普通视图且当前窗格是备注窗格,则用 Activate方法激活幻灯片窗格。
With ActiveWindow
    If .ViewType = ppViewNormal and _
            .ActivePane.ViewType = ppViewNotesPage Then
        .Panes(2).Activate
    End If
End With
调整窗格大小
可以使用SplitHorizontal属性和SplitVertical属性在普通视图中重新放置窗格分隔线,以便按指定百分比分隔可用文档窗口。也会调整分隔线两边窗格的大小。这些属性的最大值总小于 100%,因为幻灯片窗格具有一个最小尺寸(取决于 10% 的缩放水平)。本示例将设置可用文档窗口高度的百分比,其中幻灯片窗格占百分之六十五,剩下的百分之三十五为注释窗格。
ActiveWindow.SplitVertical = 65
使用表格
在 Microsoft PowerPoint 中,可以自己创建表格而无需从 Microsoft Word 中导入。表格是Shapes集合中的成员。表格中的每个单元格、列和行都是单独的可编程对象。
创建表格
使用AddTable方法可在幻灯片上创建表格。此方法会向 Shapes集合中添加具有 NumRows 和 NumColumns参数所指定的行数和列数的表格。本示例向第二张幻灯片中添加具有三行和四列的表格。
ActivePresentation.Slides(2).Shapes _
    .AddTable NumRows:=3, NumColumns:=4, Left:=10, _
    Top:=10, Width:=288, Height:=288
检测某形状是否为表格
在要处理表格中的内容或对象之前,首先必须了解正在使用的形状是否为表格。若要查看某形状是否为表格,请使用HasTable属性。例如,假定第一张幻灯片中有许多形状,且其中有一个是表格。而您希望调整此表格的大小,以使之能接受从其他来源所导入的数据。下面的代码将遍历第二张幻灯片上的 Shapes集合以找到该表格并调整其列宽。
With ActivePresentation.Slides(2)
    For sh = 1 To .Shapes.Count
        If .Shapes(sh).HasTable Then
            For Each col In .Shapes(sh).Table.Columns
                col.Width = 110
            Next col
        End If
    Next
End With
使用单元格、列和行
若要返回单列或单行中的内容和属性,可使用Columns 或Rows集合中的特定成员。Cell方法可返回Table 中的单个Cell对象。本示例将更改第二张幻灯片上第五个形状所代表的表格的各种不同属性。它更改第二行的颜色、第一列的宽度以及包含在第二行第一列单元格中的文本。
With ActivePresentation.Slides(2).Shapes(4).Table
    For Each cl In .Rows(2).Cells
        cl.Shape.Fill.ForeColor.RGB = RGB(50, 125, 0)
    Next cl
    .Columns(1).Width = 110
    .Cell(2, 1).Shape.TextFrame.TextRange.Text = "Mallard"
End With
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 21:10 , Processed in 0.045944 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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