我正在開發一個插件來自動化一些報告。
- 有一個報告模板 PowerPoint 文件,其中包含指向各種圖表和表格的圖像文件的鏈接。 (見附件)
- 當用戶單擊“添加到活動報告”按鈕時,相應的圖像文件將被覆蓋,以便新圖表或表格將顯示在報告中。
我遇到的問題是我需要更新 PowerPoint 文檔中的鏈接。我希望能夠說“創建新報告”,將模板和默認圖像複製到新文件夾中,並更新新 PowerPoint 文件中的鏈接,以便指向新文件夾中的圖像文件而不是模板文件夾中的圖像文件。任何想法我可以如何做到這一點?
非常感謝,
約翰
你好@約翰摩爾,我遇到了類似的情況,我知道在 power point 中使用企業模板不斷更新軟件包很困難,並且需要從 Anova、可變性圖表、Cpk 報告等更新大約 300 張圖像,在 JMP 中創建,其中每個 power point 軟件包都包含“基本相同圖表”,總是在同一個地方,唯一的區別是特定報告所需的原始數據。
我並不是真正的 VBA 專家,但是當您需要某些東西時,您會不斷地到處搜索並反複試驗,直到您可以製定/找到解決方案。
這是我遵循的方法,也許到目前為止你有類似的東西:
- 在 JMP 中,通過 JSL 將您的分析(圖像)發送到您 PC 中的文件夾,並為每個圖像分配一個特定的名稱(切勿將它們命名為相同,因為那樣只會覆蓋)。 一旦您在 power point 中自定義每個特定圖像的位置並為每個圖像創建鏈接。將其保存為宏文件(這將是您的模板)。
- 在您需要新報告時隨時打開您的模板並運行宏。
- 最後將文件另存為無宏並使用不同的名稱,以使模板與圖像準備好下次使用。
希望這對您有所幫助,我強烈建議您將密碼輸入宏以避免更改腳本。
問候。
子 LinkedGraphsToPictures()
'由 Andres Gonzalez 創建,2019 年 3 月
'目的:將鏈接的圖形變為常規圖像
將 shp 變暗為形狀
將 sld 調暗為幻燈片
將圖片暗淡為形狀
將 shp_left 調暗為 Double
將 shp_top 調暗為 Double
暗淡 sld_count As Long
'在 ActivePresentation 中循環遍歷每張幻燈片
對於 ActivePresentation.Slides 中的每個 sld
對於 sld_count = ActivePresentation.Slides.Count 到 1 步 -1
' 倒數到-1,避免因圖表被刪除而跳過圖表
設置 sld = ActivePresentation.Slides(sld_count)
對於 sld.Shapes 中的每個 shp
如果 shp.Type = msoLinkedPicture 則
'獲取當前位置
shp_left = shp.Left
shp_top = shp.Top
'複製/粘貼為圖片
shp.複製
sld.Shapes.PasteSpecial 數據類型:=ppPastePNG
設置 pic = sld.Shapes(sld.Shapes.Count)
'刪除連接的形狀
shp.刪除
'重新定位新粘貼的圖片
pic.Left = shp_left
pic.Top = shp_top
萬一
下一個
下一個 sld_count
下一個
結束子