如何讓ChatGPT,幫你建立Excel VBA,繪製一張折線圖?
一、前言:
Excel是工程師天天得接觸的工具,透過它幫你讓數據變成訊息,所以常常得彙整柏拉圖、折線圖、盒鬚圖…等等各式圖表。如果懂得運用 VBA則更可以讓你大大的加分,把每週、每月的固定式作業一個巨集就可以搞定。
但是 Excel VBA也不是三天兩夜就可以立馬搞定的,不過沒關係,今天石頭哥帶你透過 ChatGPT ,直接幫你解決不會寫VBA的困窘。
二、案例演練:
1、資料來源:
為了方便網友們練習,因此我直接網路上現有的資料(如底下路徑),方便你直接下載。我取用中華民國統計資訊網的國民所得統計常用資料,然後將它的EXCEL檔案下載練習。https://www.stat.gov.tw/cp.aspx?n=2674
2、如何教導ChatGPT
如果我要看國民年所得的趨勢線,你會發現到它「資料」頁面的A欄位包含各季的國民所得欄位,這不是我們需要的欄位。因此你要告訴ChatGPT,選取資料時只選取欄位內有"年"的欄位。為了讓EXCEL圖表可以繪製出來,因此你要先建立一張名稱為「工作表1」的工作表。
然後我們告訴ChatGPT錄製一個Excel VBA巨集執行底下的內容:
✅Step 1.到工作表名稱為「資料」的頁面,將A165到A325,欄位內有"年"的欄位,複製到工作表1,貼到A欄位。
✅Step 2.到工作表名稱為「資料」的頁面,將A165到A325,欄位內有"年"的欄位,對應到的O165到O325內的數據,複製到工作表1,貼到B欄位。同時B欄位的儲存格,請使用千分位符號,小數點位數為0的數值。
✅Step 3.選取工作表名稱為「工作表1」的A欄位和B欄位文字與數據,繪製一張「含有資料標記的折線圖」,折線圖的圖表標題為:平均所得。
三、EXCEL VBA巨集如最底下呈現:
底下是第一次產生的折線圖,我覺得改成「含有資料標記的折線圖」會更適合閱讀,因此上述文字已經幫各位修正過了,因此複製貼上後應該就會生成跟石頭哥一樣的圖表了。
四、小結:
像是這類資料欄位需要跳欄位選取的,一般都需要靠Excel函數,像是跨行自動加總要用到 SUMIF 公式,用到 ChatGPT的好處是你不需要了解函數,你只要知道每一個動作流程是什麼,清楚告訴GPT,它就會依據你的要求去執行。好吧,勤能補拙,就讓我們一起多練習幾回囉。
ChatGPT 產生的 Excel VBA巨集如下所示:
Sub 複製與繪製折線圖()
Dim wsData As Worksheet
Dim wsTarget As Worksheet
Dim LastRow As Long
Dim i As Long
Dim j As Long
' 定義工作表
Set wsData = ThisWorkbook.Worksheets("資料")
Set wsTarget = ThisWorkbook.Worksheets("工作表1")
j = 1
' 複製資料
For i = 165 To 325
If InStr(wsData.Cells(i, 1).Value, "年") > 0 Then
wsTarget.Cells(j, 1).Value = wsData.Cells(i, 1).Value
wsTarget.Cells(j, 2).Value = wsData.Cells(i, 15).Value
j = j + 1
End If
Next i
' 繪製折線圖
Dim Chart As ChartObject
Set Chart = wsTarget.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
Chart.Chart.SetSourceData Source:=wsTarget.Range("A1:B" & j - 1)
Chart.Chart.ChartType = xlLine
Chart.Chart.HasTitle = True
Chart.Chart.ChartTitle.Text = "平均所得"
End Sub