在Google Apps Script操作的Gg / 下載在GoogleCharts製作QrCode的圖檔
因為是直接從程式碼進行操作
所以不能設定文字對話框來輸入課程代碼
於是嘗試在Excel VBA來達成
1.執行程序的按鈕
2.輸入課程代碼
3.存檔用的名稱
基本原理是先透過XMLHTTP連結Google QR Code API取得回傳的圖檔資料
再透過ADODB.Stream進行資料處理並儲存成圖檔
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Public Sub downloadPic() '課程代碼 courseId = InputBox("請輸入課程代碼") courseName = InputBox("請輸入課程名稱") 'QR Code 路徑 myURL = "https://chart.googleapis.com/chart?chs=120x120&cht=qr&chld=M|3&chl=https://inservice.edu.tw/NAPP/CourseView.aspx?cid=" & courseId '工作簿所在路徑 strSavePath = ThisWorkbook.path '建立 XMLHTTP物件來連線 Set WinHttpReq = CreateObject("Microsoft.XMLHTTP") 'WinHttpReq.Open "GET", myURL, False, "username", "password" WinHttpReq.Open "GET", myURL, False WinHttpReq.send If WinHttpReq.Status = 200 Then Set oStream = CreateObject("ADODB.Stream") oStream.Open oStream.Type = 1 ' 1 = 二進制 , 2=文件檔 oStream.Write WinHttpReq.responseBody '寫入WinHttpReq.responseBody oStream.SaveToFile strSavePath & "\" & courseName & ".png", 2 ' 1 = 不複寫, 2 = 複寫 oStream.Close MsgBox "下載成功" End If End Sub |
#2 ~ 9
設定基本參數,包含透過文字對話框輸入課程代碼,以及圖檔儲存的名稱
並且設定將圖檔儲存在工作簿所在的資料夾
#11 ~ 16
設定 XMLHTTP
#18 ~ 26
透過判斷式來判斷伺服器能正確回傳資料時才進行檔案處理
使用ADODB.Stream來處理回傳的資料