返回列表 上一主題 發帖

使用 chatGPT 學習寫程式

使用 chatGPT 學習寫程式

chatGPT 人工智慧可以幫你練習VBA程式
幾秒鐘寫出程式真的可用,我只加了 On Error Resume Next 修正錯誤


https://openai.com/blog/chatgpt

chatGPT詢問如下:
在EXCEL裡面用VBA程式繪出動態圓形時鐘

chatGPT回覆如下:
以下是一個簡單的VBA程式,可以在Excel中繪製一個動態的圓形時鐘:

Sub DrawClock()
    Dim i As Integer
    Dim j As Integer
    Dim r As Integer
    Dim pi As Double
    Dim ang As Double
    Dim x As Double
    Dim y As Double
   
    '設定圓心座標及半徑
    r = 100
    x = 150
    y = 150
   
    '取得當前時間
    h = Hour(Now)
    m = Minute(Now)
    s = Second(Now)
   
    '清除舊時鐘
    On Error Resume Next '防止第一次沒有資料可刪會錯誤中斷
    ActiveSheet.Shapes.Range(Array("Clock")).Delete
   
    '繪製時鐘圓形
    Set myshape = ActiveSheet.Shapes.AddShape(msoShapeOval, x - r, y - r, 2 * r, 2 * r)
    myshape.Name = "Clock"
    myshape.Line.ForeColor.RGB = RGB(0, 0, 0)
   
    '繪製時鐘刻度
    pi = 3.14159265359
    For i = 1 To 12
        ang = pi / 6 * (i - 3)
        x1 = x + r * Cos(ang)
        y1 = y + r * Sin(ang)
        x2 = x + (r - 10) * Cos(ang)
        y2 = y + (r - 10) * Sin(ang)
        Set myshape = ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)
        myshape.Line.Weight = 2
        myshape.Line.ForeColor.RGB = RGB(0, 0, 0)
    Next i
   
    '繪製時針
    ang = pi / 6 * (h - 3) + pi / 360 * m + pi / 21600 * s
    x1 = x
    y1 = y
    x2 = x + (r - 50) * Cos(ang)
    y2 = y + (r - 50) * Sin(ang)
    Set myshape = ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)
    myshape.Line.Weight = 4
    myshape.Line.ForeColor.RGB = RGB(255, 0, 0)
   
    '繪製分針
    ang = pi / 30 * (m - 15) + pi / 1800 * s
    x1 = x
    y1 = y
    x2 = x + (r - 30) * Cos(ang)
    y2 = y + (r - 30) * Sin(ang)
    Set myshape = ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)
    myshape.Line.Weight = 3
    myshape.Line.ForeColor.RGB = RGB(0, 255, 0)
   
    '繪製秒針
    ang = pi / 30 * (s - 15)
    x1 = x
    y1 = y
    x2 = x + (r - 20) * Cos(ang)
    y2 = y + (r - 20) * Sin(ang)
    Set myshape = ActiveSheet.Shapes.AddLine(x1, y1, x2, y2)
    myshape.Line.Weight = 1.5
    myshape.Line.ForeColor.RGB = RGB(0, 0, 255)

End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

對初學者而言, GPT寫出來了也是一臉茫然,
EXCEL因資料或表格結構不同, 須因地制宜做不同的判斷~~

對有基礎者言, 除非遇到難解的運算邏輯, 一般的資料整理統計, 還是可以勝任!

VBA也是有"增/刪/改"的需求, 自己寫的知道關鍵所在, 改起來較就手,
尤其各程序之間有互相串聯時, GPT應無法就實際幫上忙!!!

程式除了節省人工外, 產生正確結果是重中之重,
所以, 還是老實從基礎學起吧!!!

除了GOOGLE類似案例參考外,
VBE內建說明檔也是很好用的學習材料(我初學時, 就很多時候用這個)
在"瀏覽物件"介面輸入關鍵字, 就可以找到很多相關的用法及範例,
當然, 若想學到更高坎的, 那找專業老師較實在~~

以一般使用者而言, 學會陣列及字典, 應可處理60%以上的資料了~~

TOP

chatGPT AI 不會給你完美程式,
但可以給你一個構架或範例,縮減寫程式的時間。
chatGPT AI 不用5分鐘就可以給你一段程式
自己還要花1~2小時DEBUG一些問題
要修到合意又要花1~2天時間。

但絕對對初學VBA者是一位好老師
查詢非常便利。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

底下是我測試ChatGpt 的問題:

請產生華氏與攝氏互換的VBA程式碼

結果產生兩個自訂函數程式碼如下:

'將華氏轉換為攝氏
Function FahrenheitToCelsius(fahrenheit As Double) As Double
    Celsius = (fahrenheit - 32) * 5 / 9
    FahrenheitToCelsius = Celsius
End Function

'將攝氏轉換為華氏
Function CelsiusToFahrenheit(celsius As Double) As Double
    fahrenheit = celsius * 9 / 5 + 32
    CelsiusToFahrenheit = fahrenheit
End Function


它另提供底下一個巨集範例:

Sub Example()
    Dim celsius As Double
    Dim fahrenheit As Double
   
    celsius = 25 '設置攝氏溫度為25度'
    fahrenheit = CelsiusToFahrenheit(celsius) '轉換攝氏溫度為華氏溫度'
   
    MsgBox "攝氏 " & celsius & " 度等於華氏 " & fahrenheit & " 度。"
End Sub

TOP

回復  rcyw
呃,我在大陆都注册了,不过我问它的问题,它返回的代& ...
Joforn 發表於 2023-3-13 23:55


確實太不靠譜了

TOP

跟他玩了一個月
發現這傢伙寫程式非常不靠譜
錯誤百出
有些錯誤到底如何改正 , 它自己也不知道
我舉個例  
實際上 1+1 這種問題太簡單 ,  ChatGpt  不會犯錯的
但為了讓大家更能輕易理解它的瑕疵在哪 , 我還是用了 1+1 來舉例  

ChatGpt :     1 + 2 = 4
我:   你確定   1 + 2 不是 = 3 嗎
ChatGpt :     很抱歉 我先前回答有誤 ( 或說 它自己不小心  ) ,  1 + 2 = 3 確實才是正確的

重複問它
我:   你確定   1 + 2 不是 = 4 嗎
ChatGpt :     很抱歉 我先前回答有誤  ,  1 + 2 = 4 確實才是正確的

重複問它
我:   你確定   1 + 2 不是 = 3 嗎
ChatGpt :     很抱歉 我先前回答有誤  ,  1 + 2 = 3 確實才是正確的


從上面可以看出什?   看出 ChatGpt 自己根本也不知道正確答案

TOP

chatGPT 人工智慧可以幫你練習VBA程式
幾秒鐘寫出程式真的可用,我只加了 On Error Resume Next 修正錯誤  ...
ML089 發表於 2023-2-28 09:56


這裡有別的AI機器人外掛: 20230223-0322 ChatGPT 及其他AI 使用方式 v.01.rar (880.12 KB)

TOP

回復 7# Joforn

你應該問的問題太難了或太複雜了,考倒了chatGPT
適用一般初學問題一些指令、小範例啊,真的幫助滿大的。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 5# checkout88

回覆中有些程序或一些參數總是會有一些無法執行,
有些是EXCEL版本的問題,有些是EXCEL VBA 與 其他VBA也有些指令不相容
但作為輔助查詢工具,真的比GOOGLE好用太多了。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 3# rcyw
呃,我在大陆都注册了,不过我问它的问题,它返回的代码几乎没有一个能用的。
世界那麼大,可我想去哪?

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題