AI神救援!PowerPoint自動化批量匯入圖片,數百張投影片一次完成

更新 發佈閱讀 14 分鐘

為了提供學生自主學習 18 週計畫的資訊圖表範例,最近花了一些時間製作了 2000 張資訊圖表,並打算每 200 張彙整成一份 PowerPoint 簡報檔,一共要做 20 個檔案。若是逐張將圖片插入投影片,至少得拖曳 2000 次,實在不是件輕鬆的工作。這時候,我心想,正是該讓 AI 上場救援了。(本例不採用 PowerPoint 的新增相簿功能)

vocus|新世代的創作平台

先在一個資料夾中準備好 200 張資訊圖表,這些資訊圖表的規格完全相同。因為每次只處理 200 張圖,所以,2000 張資訊圖表要分 10 次處理。

vocus|新世代的創作平台

參考作法

1.先建立 PowerPoint 的簡報模板(母片)。

vocus|新世代的創作平台

2.請 ChatGPT 產生一個 VBA 程式來執行這個工作。

提示詞:我需要將一個資料夾中的200張圖片放入一個PowerPoint檔案中,每一張投影片放入一張圖片,圖片以等比例縮放插入投影片中,請為這個工作提供可以讓PowerPoint使用的VBA程式。

3.複製 ChatGPT 提供的程式碼。(完整程式碼在文章最後

vocus|新世代的創作平台

4.在 PowerPoint 中使用快速鍵: Alt + F11,以進入 VBA 編輯器。

vocus|新世代的創作平台

5.點選功能表:插入/模組,貼上先前複製的程式碼。

vocus|新世代的創作平台

6.回到 PowerPoint 中,使用快速鍵:Alt + F8,選取巨集指令(本例:ImportPictures_OnePerSlide),再點選:執行。

vocus|新世代的創作平台

7.接著,選取圖片放置的資料夾。點選:確定,資料夾中的圖片就會自動匯入。(速度算很快了)

vocus|新世代的創作平台

最後存檔時,PowerPoint 會告知儲存檔案時,無法儲存這個巨集指令。點選:是。

vocus|新世代的創作平台

ChatGPT 提供的 VBA 完整程式

Option Explicit

' ====== 入口:選資料夾後匯入,每張圖一張投影片 ======
Public Sub ImportPictures_OnePerSlide()
Dim folderPath As String
folderPath = PickFolder()
If folderPath = "" Then Exit Sub

Dim files As Collection
Set files = GetImageFilesSorted(folderPath)

If files.Count = 0 Then
MsgBox "此資料夾找不到圖片檔(jpg/png/gif/bmp/tif/webp)。", vbExclamation
Exit Sub
End If

Dim pres As Presentation
Set pres = ActivePresentation

Dim i As Long
For i = 1 To files.Count
Dim sld As Slide
Set sld = pres.Slides.Add(pres.Slides.Count + 1, ppLayoutBlank)

Dim shp As Shape
Set shp = sld.Shapes.AddPicture( _
FileName:=CStr(files(i)), _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=0, Top:=0, Width:=-1, Height:=-1)

' 你可以二選一:
FitPictureContain shp, sld ' 完整顯示(不裁切),等比例縮放置中(推薦)
'FitPictureCover shp, sld ' 滿版填滿(會裁切),等比例縮放後裁切置中
Next i

MsgBox "完成!已匯入 " & files.Count & " 張圖片。", vbInformation
End Sub

' ====== 等比例縮放:完整顯示(Contain),不裁切,置中 ======
Private Sub FitPictureContain(ByVal pic As Shape, ByVal sld As Slide)
Dim sw As Single, sh As Single
sw = sld.Parent.PageSetup.SlideWidth
sh = sld.Parent.PageSetup.SlideHeight

pic.LockAspectRatio = msoTrue

' 先以寬為基準
pic.Width = sw
' 若高度超出,改以高為基準
If pic.Height > sh Then
pic.Height = sh
End If

pic.Left = (sw - pic.Width) / 2
pic.Top = (sh - pic.Height) / 2
End Sub

' ====== 等比例縮放:滿版填滿(Cover),會裁切,置中 ======
Private Sub FitPictureCover(ByVal pic As Shape, ByVal sld As Slide)
Dim sw As Single, sh As Single
sw = sld.Parent.PageSetup.SlideWidth
sh = sld.Parent.PageSetup.SlideHeight

pic.LockAspectRatio = msoTrue

' 先以寬填滿
pic.Width = sw
' 若高度不足,改以高填滿
If pic.Height < sh Then
pic.Height = sh
End If

pic.Left = (sw - pic.Width) / 2
pic.Top = (sh - pic.Height) / 2

' 裁切到投影片大小
With pic.PictureFormat.Crop
.Left = IIf(pic.Width > sw, (pic.Width - sw) / 2, 0)
.Right = IIf(pic.Width > sw, (pic.Width - sw) / 2, 0)
.Top = IIf(pic.Height > sh, (pic.Height - sh) / 2, 0)
.Bottom = IIf(pic.Height > sh, (pic.Height - sh) / 2, 0)
End With

pic.Left = 0
pic.Top = 0
pic.Width = sw
pic.Height = sh
End Sub

' ====== 取得資料夾內圖片檔(依檔名排序) ======
Private Function GetImageFilesSorted(ByVal folderPath As String) As Collection
Dim col As New Collection

Dim fso As Object, folder As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)

' 收集圖片檔
For Each file In folder.Files
Dim ext As String
ext = LCase$(fso.GetExtensionName(file.Name))

If ext = "jpg" Or ext = "jpeg" Or ext = "png" Or ext = "gif" Or _
ext = "bmp" Or ext = "tif" Or ext = "tiff" Or ext = "webp" Then
col.Add file.Path
End If
Next file

' 轉陣列排序(字典序)
Dim arr() As String
Dim i As Long
If col.Count > 0 Then
ReDim arr(1 To col.Count)
For i = 1 To col.Count
arr(i) = CStr(col(i))
Next i
QuickSortStrings arr, LBound(arr), UBound(arr)

Dim sorted As New Collection
For i = LBound(arr) To UBound(arr)
sorted.Add arr(i)
Next i
Set GetImageFilesSorted = sorted
Else
Set GetImageFilesSorted = col
End If
End Function

' ====== 字串 QuickSort(檔名排序用) ======
Private Sub QuickSortStrings(ByRef arr() As String, ByVal first As Long, ByVal last As Long)
Dim i As Long, j As Long
Dim pivot As String, tmp As String

i = first
j = last
pivot = arr((first + last) \ 2)

Do While i <= j
Do While arr(i) < pivot: i = i + 1: Loop
Do While arr(j) > pivot: j = j - 1: Loop
If i <= j Then
tmp = arr(i)
arr(i) = arr(j)
arr(j) = tmp
i = i + 1
j = j - 1
End If
Loop

If first < j Then QuickSortStrings arr, first, j
If i < last Then QuickSortStrings arr, i, last
End Sub

' ====== 選資料夾(Windows / Office 常用對話框) ======
Private Function PickFolder() As String
On Error GoTo EH

Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
.Title = "請選擇圖片資料夾"
.AllowMultiSelect = False
If .Show <> -1 Then
PickFolder = ""
Else
PickFolder = .SelectedItems(1)
End If
End With
Exit Function

EH:
PickFolder = ""
End Function



留言
avatar-img
學不完.教不停.用不盡
186會員
156內容數
分享個人電腦教學,回答網友提問,解決資料處理與設計問題。
2026/02/01
ChatGPT GPT-5.2 現在支援更完整且高效率的檔案輸出功能,能夠將回覆內容直接轉換並產出為 Word、Excel、PowerPoint、PDF 等常用檔案格式。使用者不需要再額外複製貼上或進行繁瑣的轉檔步驟,就能立即取得結構完整、可直接編輯或分享的成品檔案。
Thumbnail
2026/02/01
ChatGPT GPT-5.2 現在支援更完整且高效率的檔案輸出功能,能夠將回覆內容直接轉換並產出為 Word、Excel、PowerPoint、PDF 等常用檔案格式。使用者不需要再額外複製貼上或進行繁瑣的轉檔步驟,就能立即取得結構完整、可直接編輯或分享的成品檔案。
Thumbnail
2026/02/01
在 Microsoft 的 Copilot 生態系中,也已能執行類似「代理程式」的應用情境。例如,Copilot 可以與 Canva 等第三方工具整合(ChatGPT 也是如此),代理使用者完成簡報製作,從版型選擇、內容生成到視覺設計,都能透過指令自動化處理。
Thumbnail
2026/02/01
在 Microsoft 的 Copilot 生態系中,也已能執行類似「代理程式」的應用情境。例如,Copilot 可以與 Canva 等第三方工具整合(ChatGPT 也是如此),代理使用者完成簡報製作,從版型選擇、內容生成到視覺設計,都能透過指令自動化處理。
Thumbnail
2026/02/01
有時在網路上會遇到某些 YouTube 歌曲影片無法下載歌詞,甚至根本找不到完整歌詞;但手動輸入這些冗長的文字實在相當耗時。於是,我決定派出 NotebookLM 來協助解決這個問題。接下來,就從一個 YouTube 網址開始吧!
Thumbnail
2026/02/01
有時在網路上會遇到某些 YouTube 歌曲影片無法下載歌詞,甚至根本找不到完整歌詞;但手動輸入這些冗長的文字實在相當耗時。於是,我決定派出 NotebookLM 來協助解決這個問題。接下來,就從一個 YouTube 網址開始吧!
Thumbnail
看更多
你可能也想看
Thumbnail
資訊圖表的設計考量,在「美化」、「降噪」以外,亦需要檢查設計與要表達的訊息之間,是否有相輔相成的效果,還是會帶來誤會或錯覺。擅長資訊視覺化的國際級媒體,例如紐約時報、Visual Capitalist等,也會偶爾在處理設計時,忽略了相關的眉角。為什麼這些眉角是地雷,我們又怎樣能修正呢? 教材來
Thumbnail
資訊圖表的設計考量,在「美化」、「降噪」以外,亦需要檢查設計與要表達的訊息之間,是否有相輔相成的效果,還是會帶來誤會或錯覺。擅長資訊視覺化的國際級媒體,例如紐約時報、Visual Capitalist等,也會偶爾在處理設計時,忽略了相關的眉角。為什麼這些眉角是地雷,我們又怎樣能修正呢? 教材來
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
之前示範過用Excel產出啞鈴圖,這一次我們繼續打破 #資訊視覺化 的迷思,軟體知識與編程技巧不一定是製作圖表的門檻。適逢 #台北捷運 踏進30年,我們就來看一下,如何在Excel製作出雙北捷運的路線圖,然後再配上不同的數據圖表,以顯示客量的分佈與變化。 鐵路或捷運路線圖,固然有專業軟體可
Thumbnail
之前示範過用Excel產出啞鈴圖,這一次我們繼續打破 #資訊視覺化 的迷思,軟體知識與編程技巧不一定是製作圖表的門檻。適逢 #台北捷運 踏進30年,我們就來看一下,如何在Excel製作出雙北捷運的路線圖,然後再配上不同的數據圖表,以顯示客量的分佈與變化。 鐵路或捷運路線圖,固然有專業軟體可
Thumbnail
在商業簡報中,我們需要闡述不同層面的資訊與概念,常用的視覺化工具就是流程圖與資訊圖。然而大家對SmartArt的印象,都是沉悶或是老套。這次的分享就是如何在SmartArt之上,發揮簡單易明的技巧,那怕沒有設計背景,你也可以輕鬆做到專業耐看的資訊圖,不用再四處搜尋模板來改善投影片設計。
Thumbnail
在商業簡報中,我們需要闡述不同層面的資訊與概念,常用的視覺化工具就是流程圖與資訊圖。然而大家對SmartArt的印象,都是沉悶或是老套。這次的分享就是如何在SmartArt之上,發揮簡單易明的技巧,那怕沒有設計背景,你也可以輕鬆做到專業耐看的資訊圖,不用再四處搜尋模板來改善投影片設計。
Thumbnail
在商業簡報中,資訊圖表有助於展示數據的趨勢。當要呈現多項數據的前後比較時,分項式的長條圖就很常見。如果我們想更視覺化地展示數據變化的幅度,讓觀眾一看便知道哪項差距最大,可改用啞鈴圖。你可能會說,Office預設圖表類型沒有啞鈴圖,需要用上其他軟體或編程吧?其實,單單運用Excel就可以造出啞鈴圖呢。
Thumbnail
在商業簡報中,資訊圖表有助於展示數據的趨勢。當要呈現多項數據的前後比較時,分項式的長條圖就很常見。如果我們想更視覺化地展示數據變化的幅度,讓觀眾一看便知道哪項差距最大,可改用啞鈴圖。你可能會說,Office預設圖表類型沒有啞鈴圖,需要用上其他軟體或編程吧?其實,單單運用Excel就可以造出啞鈴圖呢。
Thumbnail
作為商業顧問,分析案例時其中一個重要的考慮是,「我們是否在解決一個正確的問題」,以免花時間心思與客戶同走冤枉路。面對資訊圖表初稿的時候,你會否不假思索地立刻進行改造,而沒有先反問一下,「這是否一個正確圖表類型的選擇」?適逢星宇航空不久前上市,我就以上市前業績發表會的圖表作為教材來分析解拆。
Thumbnail
作為商業顧問,分析案例時其中一個重要的考慮是,「我們是否在解決一個正確的問題」,以免花時間心思與客戶同走冤枉路。面對資訊圖表初稿的時候,你會否不假思索地立刻進行改造,而沒有先反問一下,「這是否一個正確圖表類型的選擇」?適逢星宇航空不久前上市,我就以上市前業績發表會的圖表作為教材來分析解拆。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
隨著簡報的推進,在縱向結構以外,橫向展開的內容也是重要的組成部分。並排資料的展示很常見,例如是在時間線、目錄頁及內容細項。從簡單的一字排開,到配上並排圖示,到簡報模板常見的滙聚形狀,各種複雜性的處理均可。與其被模板的風格、形狀或項目數量所捆綁,就來解密滙聚形狀背後的做法,創造你和團隊專屬的資訊圖吧!
Thumbnail
隨著簡報的推進,在縱向結構以外,橫向展開的內容也是重要的組成部分。並排資料的展示很常見,例如是在時間線、目錄頁及內容細項。從簡單的一字排開,到配上並排圖示,到簡報模板常見的滙聚形狀,各種複雜性的處理均可。與其被模板的風格、形狀或項目數量所捆綁,就來解密滙聚形狀背後的做法,創造你和團隊專屬的資訊圖吧!
Thumbnail
「生成內容」已經是辦公室必備的競爭力,無論是文件、電郵、圖像、簡報,都有不同的生成應用。但你又是否知道,Excel本身也有生成內容的函數,讓你不用把算式往下拉、根據今天日期更新過去十二個月數據的圖表、甚至動態建立階梯式收費或稅項表格? 個人實戰的經驗是,用好Excel函數的秘訣,不在於把問題全
Thumbnail
「生成內容」已經是辦公室必備的競爭力,無論是文件、電郵、圖像、簡報,都有不同的生成應用。但你又是否知道,Excel本身也有生成內容的函數,讓你不用把算式往下拉、根據今天日期更新過去十二個月數據的圖表、甚至動態建立階梯式收費或稅項表格? 個人實戰的經驗是,用好Excel函數的秘訣,不在於把問題全
Thumbnail
數據經過蒐集、清理、分析等過程,就需要呈現洞見給持份者,才能夠發揮影響力,讓企業基於數據作出決策。當視覺化圖表與投影片都可以透過人工智慧協助或全數生成,在上場簡報的時候又應該如何把圖表和數據介紹給觀眾呢?
Thumbnail
數據經過蒐集、清理、分析等過程,就需要呈現洞見給持份者,才能夠發揮影響力,讓企業基於數據作出決策。當視覺化圖表與投影片都可以透過人工智慧協助或全數生成,在上場簡報的時候又應該如何把圖表和數據介紹給觀眾呢?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News