VBA AI生成是很實用的功能,本文帶你認識最基本的操入介面,首先是瞭解有5種不同的程式類別,然後請ChatGPT幫你開發1個自定義函數,帶你輕鬆撰寫代碼。
目錄
Toggle一、VBA撰寫程式碼
想要開始撰寫VBA程式,正式路徑是將上方工具列的「插入」下拉,可以看到有程序、自訂表單、模組、物件類別模組、檔案五個選項,對於初學者而言,可能不清楚這五個選項的內容和差異。況且Excel VBA編輯器是十幾年前沿用至今的介面,可以說一直沒有更新,不會像目前比較新進的編輯器,會有即時及詳細的輔助說明,所以可能會比較難以入門。

二、5種程式類別
編輯器本身沒提供相關說明,其實也沒有關係,現在AI這麼方便,大可直接ChatGPT官網登入提問就好了。在此依照上個步驟的狀況,具體提問如下:
「VBA在插入時,有程序、自訂表單、模組、物件類別清單、檔案五種選項,請說明各自的功能用法。」
本擅長於收集資料,像這種知識型問題大概都不是難事。ChatGPT立刻詳細列出了五種程式類別,其中提到可以快速插入一個新的程序Sub或函數Function,這是VBA代碼編寫的基本單位,最常用到,本文主要以此作為範例。

三、新增程序視窗
藉由ChatGPT對於VBA插入模組有一定的認識之後,延續先前第一步驟,準備實際進行操作。
先看一下左邊的專案視窗,目前有兩個模組,它類似於程式碼容器,在想要撰寫的模組連按兩下,例如將滑鼠游標移到「Module1」上面按兩下,就會開啟這個模組文件。
接著在文件中空白的地方執行「插入>模組」,會出現這裡看到的「新增程序」視窗。注意到所謂的空白處,指的是沒有在Sub程序裡面,因為VBA裡每個小程序都是獨立的,Sub跟End Sub之間不能夠再嵌入Sub程序。
視窗中除了通常都會有的「名稱」欄位之外,型態主要有Sub和Function,其實還有一個不常用的Property,本文以常見的Sub跟Function介紹。另外這裡還有「有效範圍」跟「靜態變數」兩個功能參數,同樣初學者比較不會用到,雖然ChatGPT AI應用有提供詳細說明,在此不多做介紹。

四、ChatGPT程式教學
假設目前對於Function不太了解,想要有個基本認識,可以稍微思考ChatGPT問問題技巧的策略,提出需求如下:
「VBA新增程序視窗中,有Sub也有Function,請問Function用法,提供一個簡單範例。」
雖然沒有直接問到,但是ChatGPT在說明Function方式和用法的同時,同時把Sub程序作為對照組,說明兩者差別,原來就在於Function函數有傳回值,但是Sub程序沒有。
接著ChatGPT正式介紹Function用法,有兩個主要內容:返回值跟參數,所以只要有使用過Excel函數,應該很容易可以瞭解。所謂VBA函數其實也是同樣的計算方式,以參數作為輸入值,傳回值作為結果。


五、Function用法
複製上個步驟ChatGPT寫程式所提供的範例,貼到VBA編輯器中。會發現到雖然有提出希望提供簡單範例,對於贊贊小屋而言還是過於複雜,會有先前第三步驟所提到的變數之類的東西,在此予以簡化,將原本的AddNumbers簡化為Test1,兩個參數為N1跟N2。

六、VBA AI生成
接著是函數引用,其實如同儲存格引用函數一樣,輸入函數名稱,括號裡面是參數,如同這裡所看到的「Test1(5,10)」,然後使用MsgBox訊息方塊命令,加上適當說明「兩數之和為:」,用「&」符號把不同的文字資料串連起來。
這裡用到了跟上個步驟同樣方法,將原本VBA AI生成的範例程式碼做了簡化,如此讀者更容易理解Function的基本用法,也對於ChatGPT使用攻略在這方面的協助有更進一步的體會。

七、Excel函數開發
設定好了函數之後,除了在VBA程式中使用,其實可以把它想作是整個活頁簿專案的函數庫,所以不僅是VBA編輯器,在Excel工作表上也可以引用,就跟一般的儲存格函數公式一樣。
如此,等於是自定義開發的Excel函數,不但補充既有函數的不足,更是充分體驗AI程式設計的開發樂趣。

AI輔助學習工具
這篇文章看到ChatGPT於VBA自動化不管是概念性的說明、實際的操作、程式碼範例,各個方面都能夠提供協助。不過其中在程式範例的部分,雖然已經是簡化了,對於初學者而言可能還是稍微複雜,畢竟AI本身是針對問題提供答案,本來就不是以教學為目的,
所以雖然能夠透過AI學到很多東西了,不過仍然是輔助工具,目前還沒有辦法完全取代傳統的學習方式。
學會計、學Excel、學習AI工具,歡迎加入贊贊小屋社群。
AI工具大全:8種不同功能用途和30個應用清單
ChatGPT怎麼用?、Gemini是什麼?、Notion教學。
贊贊小屋AI課程:ChatGPT課程、AI工具全攻略、Notion課程。
