Board logo

標題: 使用 chatGPT 學習寫程式 [打印本頁]

作者: ML089    時間: 2023-2-28 09:56     標題: 使用 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
作者: Andy2483    時間: 2023-3-2 12:08

本帖最後由 Andy2483 於 2023-3-2 12:11 編輯

回復 1# ML089


    前輩好久不見,謝謝前輩分享指導
這科技很厲害,會顛覆很多事情
作者: rcyw    時間: 2023-3-4 01:30

OpenAI....這個要用電話認証, 似乎中國/香港的電話都註冊不到....:(
作者: ML089    時間: 2023-3-5 09:19

回復 3# rcyw
我用 Chrome 開啟 chatGPT,,直接用 google 帳號 直接註冊,就可以使用。
作者: checkout88    時間: 2023-3-11 15:54

很好用, 我最新寫VBA都問他. 很強. 但有時候因為版本的不同, 會鬼打牆
作者: jeffrey628litw    時間: 2023-3-12 07:31

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



    感謝前輩的教導,剛好敝人最近也有研究分享給大家。



[attach]35917[/attach]
作者: Joforn    時間: 2023-3-13 23:55

回復 3# rcyw
呃,我在大陆都注册了,不过我问它的问题,它返回的代码几乎没有一个能用的。
作者: ML089    時間: 2023-3-14 14:28

回復 5# checkout88

回覆中有些程序或一些參數總是會有一些無法執行,
有些是EXCEL版本的問題,有些是EXCEL VBA 與 其他VBA也有些指令不相容
但作為輔助查詢工具,真的比GOOGLE好用太多了。
作者: ML089    時間: 2023-3-14 14:33

回復 7# Joforn

你應該問的問題太難了或太複雜了,考倒了chatGPT
適用一般初學問題一些指令、小範例啊,真的幫助滿大的。
作者: jeffrey628litw    時間: 2023-3-26 21:59

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


這裡有別的AI機器人外掛:[attach]36041[/attach]
作者: jackyq    時間: 2023-4-29 20:53

跟他玩了一個月
發現這傢伙寫程式非常不靠譜
錯誤百出
有些錯誤到底如何改正 , 它自己也不知道
我舉個例  
實際上 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 自己根本也不知道正確答案
作者: jackyq    時間: 2023-4-29 20:55

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


確實太不靠譜了
作者: Quake    時間: 2023-4-30 21:17

底下是我測試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
作者: ML089    時間: 2023-5-1 19:07

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

但絕對對初學VBA者是一位好老師
查詢非常便利。
作者: 准提部林    時間: 2023-5-2 12:38

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

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

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

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

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

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)