top of page

如何讓ChatGPT,幫你建立Excel VBA,繪製一張折線圖?


如何讓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

65 次查看0 則留言

其他文章

bottom of page