LibreOffice 6.4.0, Excel2007, VBA test and send gmail


https://wp.me/ph3BR-2PR

 

 

LibreOffice 等同 MicroSoft Office, 免費開源可下載, 也可以捐錢,

https://www.libreoffice.org/download/download/

如果用 MicroSoft Store 安裝, 付費9.9美元.

無論如何, 除非需要用 Outlook, 不然一般的文書試算表, 這個已經完全可以取代 MicroSoft Office2007.

實驗直接使用 LibreOffice Calc 打開 Excel 2007 建立的文件, 沒問題. 儲存為 Excel 格式也沒問題, 注意一點, MACRO (巨集) / 按鈕等控件會遺失, 無解, 除非存檔為 LibreOffice 的格式. Pivot table 功能大致一樣, 除了操作有點不習慣, 如果習慣用 Excel 2007 古典樞紐分析表的顯示, 則 LibreOffice Calc 欠奉.

再來實驗 VBA 的功能, 參考人家的, 比較快, 介面稍微不同於 Excel 2007, 但是調出 VBA 編輯器的方式也是按鍵組合 ALT+F11. VBA 源碼可以直接搬來用, 設計流程跟 EXCEL VBA 一樣.

實驗 VBA, send gmail, 如果報錯, 例如 gmail SMTP error 0x80040217, 首先確認 email 帳密無誤, 同時登入google gmail, 把安全性設為[允許安全性較低的應用程式].

 

 

俺抄來改過的源碼, 除了 option 那句, 其他通用, 都適合 Excel2007 和 LibreOffice Calc.

' ref: https://jasin885.com/blog/libreoffice-calc-basic2%e4%b8%80%e9%8d%b5%e7%99%bcgmail%e9%83%b5%e4%bb%b6.html
' LibreOffice 6.4 Calc, VBA test

' Ensure your email and password are right, login gmail, set gmail security to LOW
' xiaolaba, 2020-FEB-23


'''' for LibreOffice Calc only, no need for Excel2007 VBA
Option VBASupport 1 'enable VBA compatible mode
'Option VBASupport 0 'disable VBA compatible mode

Sub Main

Dim MyEmail as string
Dim MyPwd as string
Dim MyContent as string
Dim SendMail As Object

MyPwd = "1234" '密碼
MyEmail = "1234@gmail.com" ''發信者電子郵件
MyContent = "LibreOffice Calc & Excel 2007 巨集發信測試, xiaolaba"

set SendMail= CreateObject("CDO.Message")
ConfURL = "http://schemas.microsoft.com/cdo/configuration/"

With SendMail.Configuration.Fields
.Item( ConfURL & "smtpusessl" ) = true
.Item( ConfURL & "smtpauthenticate" ) = 1
.Item( ConfURL & "smtpserver" ) = "smtp.gmail.com"
.Item( ConfURL & "smtpserverport" ) = 465
.Item( ConfURL & "sendusing" ) = 2
.Item( ConfURL & "sendusername" ) = MyEmail '發信者電子郵件
.Item( ConfURL & "sendpassword" ) = MyPwd '密碼
.Update
End With

With SendMail
.Subject = MyContent
.From = MyEmail '發信者電子郵件
.To = MyEmail '收件者電子郵件
.HTMLBody = MyContent
.Send
End With

msgbox MyContent + ", done"

SendMail = nothing
End Sub

 

運行畫面, 成功表示發了一封EMAIL給自己, 打開 gmail 就會看到.

想要做那個 send gmail test 按鈕的話, 試試看,

Excel2007 左上角 [圓圈圖案], [選項], [功能區去顯示開發人員]

LibreOffice calc, [檢視], [工具列], [表單控制項], [表單設計]

 

原始的 Coronavirus infection map LibreOffice test.ods

格式是 LibreOffice ODS, 包含 Macro, 假若存檔成 Excel 的 xlsm 格式, Macro 就會丟失.

同樣原因, LibreOffice 讀取 xlsm 也會丟失 Macro.

 

REF:

https://jasin885.com/blog/libreoffice-calc-basic2%e4%b8%80%e9%8d%b5%e7%99%bcgmail%e9%83%b5%e4%bb%b6.html

https://jasin885.com/blog/libreoffice-calc-basic1%E6%A6%82%E5%BA%8F.html

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.