生活随笔
收集整理的這篇文章主要介紹了
VBA实现从EXCEL单元格更新或修改PPT对应文本框内容并且不改变格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VBA實現從EXCEL單元格更新或修改PPT對應文本框內容并且不改變格式
原創不容易,請不要抄襲!
配置工作
EXCEL 2010版本以上配置
文件-選項-自定義功能區-主選項卡-勾選開發者選項打開開發者選項里的Visual Basic, 選擇工具-引用-勾選Microsoft Powerpoint 14.0 Object Library
開發
打開Visual Basic 在工程框里相應的EXCEL下新建模塊,此時會彈出模塊1(代碼)編寫兩個VB函數getshapedata() 和 writedata()
Dim ppapp As PowerPoint.Application
Dim pppres As PowerPoint.PresentationSub getshapedata()
'On Error GoTo line1
Set ppapp = GetObject(, "powerpoint.application")
Set pppres = ppapp.ActivePresentationDim shapename
Dim shapeslide
Dim shapetext
Dim nextrowshapeslide = ppapp.ActiveWindow.View.Slide.SlideIndex
shapename = ppapp.ActiveWindow.Selection.ShapeRange(1).Name
shapetext = pppres.Slides(shapeslide).Shapes(shapename).TextEffect.Text
'friendlyname = InputBox("insert one name" & shapetext, "Friendly Name", "")nextrow = Sheet1.Range("a" & Rows.Count).End(xlUp).Row + 1Sheet1.Range("a" & nextrow) = shapeslide
Sheet1.Range("b" & nextrow) = shapename
Sheet1.Range("c" & nextrow) = shapetext
'Sheet1.Range("d" & nextrow) = friendlyname'Exit Sub'line1:
'MsgBox "no selection"End SubSub writedata()
Dim c As Object
Dim shapename
Dim slidename
Dim shapetextSet ppapp = GetObject(, "powerpoint.application")
Set pppres = ppapp.ActivePresentationFor Each c In Sheet1.Range("a2:a" & Sheet1.Range("a" & Rows.Count).End(xlUp).Row)shapeslide = Sheet1.Range("a" & c.Row)
shapename = Sheet1.Range("b" & c.Row)
shapetext = Sheet1.Range("c" & c.Row)
'friendlyname = Sheet1.Range("d" & c.Row)pppres.Slides(shapeslide).Shapes(shapename).TextEffect.Text = shapetextNext cEnd Sub
保存
演示
打開保存代碼的EXCEL,在開發工具中新建按鈕,選擇getshapedata,并改按鈕名稱為get data.
按照上一步驟,插入另一個按鈕,選擇writedata, 并修改名稱為write data, 在A1, B1&C1鍵入shape index(幻燈片索引), shape name(文本框索引), value(文本框的內容),結果如下圖所示。
不關閉EXCEL, 并打開PPT,選擇想要更新的文本框。
按一下EXCEL的按鈕get data,ppt對應文本框的三個信息自動生成在excel里,如下所示:
保持PPT與EXCEL同時打開,修改目標文本框對應EXCEL里VALUE中的值,例如(今天天氣很好),點按鈕write data,運行結束后查看下PPT,如下圖所示:
自動化功能強一點就是這個效果,需要增加格式處理函數text(), round(),left(), 和len()等EXCEL函數。
6.1 數據源EXCEL加格式處理:
6.2 中間文本框對應EXCEL文件
6.3 可替換PPT里的所有的文本框
注意點!!!
PPT里的文本框必須是在創建或設計時新建的文本框,不能是同一個文本框復制的
打賞
本人制作這個代碼不容易,希望大家獲得便利的同時,支援點糧草,謝謝!
如果有深入問題,請聯系modas_lee@foxmail.com
總結
以上是生活随笔為你收集整理的VBA实现从EXCEL单元格更新或修改PPT对应文本框内容并且不改变格式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。