返回 最初的純真性情
作家:ThisIsTheWay
文章分類
    Top
    [Powerpoint VBA] 增益集: 新增空白投影片按鈕
    2009/03/03 12:54:39
    瀏覽:3456
    迴響:0
    推薦:0
    引用0
    • 分享到LINE

    VBA for Powerpoint 的實例比較少見, 我也很少實際寫來用。當我想把一個新增空白投影片按鈕的Powerpoint VBA巨集製作成增益集的時候, 查了資料才知道, 原來 Powerpoint 的 auto_open() 和 auto_close() 只有在增益集才有效。(開啟或關閉 ppt 檔,它裡面的auto_open() 和 auto_close() 不會自動執行。 )

    網友的問題是:「我使用 Powerpoint 2003,按「新投影片」時,新增的投影片都會有「按一下以新增標題」這樣的框框。我知道可以到物件配置方式,按「空白」的物件配置方式,以變成空白,或直接在左邊頁面欄,複製貼上一個空白的頁面,但這樣有點麻煩,可以做到按「新投影片」時,新增的投影片就是空白的嗎?」

    針對這個需求, 我寫了一個 VBA (底下的NewBlankSlide) 副程式, 它會把「空白」物件配置的新投影片插在最後一張。而為了方便使用,我把它做成一個會在 "一般(Standard)" 工具列設定一個按鈕的增益集, 這個按鈕會執行NewBlankSlide。
    手續有一點點複雜:

    1)將巨集的 "安全性" 設為 "中"
    2) 建立一個新簡報檔 (開新檔案)
    3) 按 Alt+F11, 進入 PowerPoint 的 Visiual Basic 編輯環境, 點選 [插入]-->模組
    4)copy底下的程式碼, 把它貼到模組程式碼視窗裡:

    Sub NewBlankSlide()
    NewSlideNo = ActivePresentation.Slides.Count + 1
    ActivePresentation.Slides.Add(Index:=NewSlideNo, Layout:=ppLayoutBlank).Select
    End Sub

    Sub auto_open()
     '當這個檔案被開啟的時候, 也就是這個增益集被啟動的時候, 就要新增這個按鈕
    Set myControl = CommandBars.FindControl(Type:=msoControlButton, Tag:="NEWBLANKSLIDE")
    If myControl Is Nothing Then
        Set myControl = CommandBars.FindControl(Type:=msoControlButton, Id:=680)
        myControl.CopyFace
        Set newItem = Application.CommandBars("Standard").Controls.Add( _
    Type:=msoControlButton, Before:=1)
        With newItem
        .BeginGroup = True
            .Caption = "空白投影片"
            .Tag = "NEWBLANKSLIDE"
            .FaceId = 0
            .OnAction = "NewBlankSlide"
            .PasteFace
        End With
    End If
    End Sub

    Sub auto_close()
     '當這個檔案被關閉的時候, 也就是這個增益集被移除的時候, 就把這個按鈕刪掉

    Set myControl = CommandBars.FindControl(Type:=msoControlButton, Tag:="NEWBLANKSLIDE")
    If myControl Is Nothing Then
    Else
        myControl.DeleteEnd If
    End Sub


    5)回到PowerPoint 投影片編輯視窗, 執行[檔案]-->另存新檔,
    選擇 [檔案類型] 為: "PowerPoint增益功能(*.ppa)" , 請給這檔案取個名字叫做"新增空白投影片", Powerpoint 會把這個檔案存到 C:\Documents and Settings\<使用者名稱>\Application Data\Microsoft\Add-Ins 資料夾

    6)執行[工具]-->[增益集], 在 "增益集" 功能視窗裡按 [新增] 鈕,
    然後點選你剛才存檔的 "新增空白投影片.ppa" 檔, 最後把"增益集" 功能視窗關掉

    7) 檢查 Powerpoint 的 "一般" 工具列的第一個按鈕, 是不是叫做"空白投影片"? 試試看它的功能吧!!

    上述手續只需做一次, 從此之後, 啟動 Powerpoint 裡面就會有此按鈕 , 而因為auto_open()程式裡面有檢查, If myControl Is Nothing Then ......, 如果按鈕不存在才會新增, 所以不會重覆。

    點這裡可以下載這個增益集 

    回應
    全站分類:知識學習 科學百科
    自訂分類:Powerpoint & VBA
    發表迴響

    會員登入