ExcelMail 增益集3.1:安裝與啟動

壹、     安裝:先將執行中的ExcelWord關閉,下載程式後解壓縮,再執行安裝程式setup.exe,依安裝精靈逐步執行安裝

clip_image002

點選下一步。

clip_image004

選擇同意授權合約才能繼續安裝。

clip_image006

請指定只安裝僅自己。

clip_image008

確認安裝。

clip_image010

執行安裝。

clip_image011

安裝完成。若使用者環境不符合ExcelMail執行所需的環境,會中斷安裝程序,使用者若未安裝.Net Framwork4.0,安裝程式會自動引導至微軟網站下載.Net Framwork4.0

貳、     啟動:請打開Excel程式,以Excel2010為例,安裝成功開啟Excel2010會在功能區中出現[增益集]的功能區塊,點選[增益集]區塊應該會出現[寄送電子郵件]按鈕(如下圖)

clip_image013

如果沒有出現表示沒有安裝成功,可以點選[開發人員]\[COM增益集]功能(如下圖)

clip_image015


檢視是否將增益集載入成功。
(如下圖表示正確載入)

clip_image017

注意:
[開發人員]此區塊預設是關閉,請點選[檔案]\[選項]\[自訂功能區][開發人員]選項勾選(如下圖),按下[確定]即可看到功能區出現[開發人員]
功能區塊,此區塊有很多協助開發人員的功能。

clip_image019

ExcelMail 3.1 功能簡介與執行所需環境

 

壹、     功能簡介
1.ExcelMail 增益集提供使用者直接在Excel軟體環境中進行寄送電子郵件的功能,程式主畫面如圖一。

clip_image002[6](圖一)

2.使用者只要將收件者的電子郵件地址輸入Excel工作表中(如圖二),即可作為通訊錄透過ExcelMail 進行寄信。

clip_image004[6](圖二)

3.使用者可以將對應收件者的Excel資料透過ExcelMail插入選取資料的功能(圖三),將選取的資料寄出而無須整個工作表或整個工作簿寄出。

clip_image005[6](圖三)

4.透過ExcelMail篩選功能(如圖四),使用者可以針對特定資料內容建立特定寄信對象群組,例如針對考試不及格的學生進行通知。

clip_image007[6](圖四)

5.透過ExcelMail搜尋網頁的功能(如圖五),可以將簡單的網頁資料直接寄送至收件者。
clip_image009[6](圖五)

6.透過ExcelMail批次對應選取資料的功能(如圖六),可以作為薪資單寄送或成績單寄送的工具軟體,每一個使用者只會收到屬於自己的資料。

clip_image010[6](圖六)

7.使用者可在Excel資料表建立收件者不同的附件檔目錄資料,透過ExcelMail批次對應附加檔案功能(如圖七),可以進行批次附件檔案寄送之功能,可以一次寄送不同之附加檔案給不同的收件者。

clip_image012[6](圖七)

8.使用者可以透過ExcelMail批次取代前文的功能(如圖八),寄送客製化的信件,讓收件者收到專屬於個人的信件內容。

clip_image014[6]

9.使用者可以利用Word建立信件內容,透過ExcelMail Word的增益集功能將Word文件轉換為電子郵件內容。(如圖九)

clip_image015[4](圖九)

10. 利用ExcelMail啟用批次word信件功能,結合ExcelMail批次對應選取資料的功能,讓使用者可以進行批次寄發不同內容的word檔、pdf檔與封裝檔案。

clip_image016[4]
 

貳、     執行ExcelMail所需的環境:
作業系統Win XP Win 7
.Net Framwork 4.0
ExcelMailExcel增益集,所以使用者必須有微軟的 Excel 2007 Excel 2010,如果是64bitExcel 2010,則必須使用64位元版本之ExcelMail

關於ExcelMail寄送中文檔名附件檔出現亂碼的問題

有使用者來信提到當寄送的附件檔案如果是很長的中文檔名,則收件者無法收到正確的檔案,而是一串亂碼,這個是.net的問題,經過測試如果檔名的中文字不超過12個字就不會出現亂碼的狀況,在下次改版時改用更新版本的.net,看是否能解決。

利用Word來設計電子問卷四(問卷的回收方案)(ps:帶頭升級 Office 2007,是害群之馬嗎?)

在前三篇文章我們詳述了如何利用word製作電子問卷及問卷密碼漏洞問題,但是另一個問卷調查的核心問題:如何回收問卷?我並沒有接續的詳加說明,隔了那麼久才發表。主要的原因是利用word來製作問卷這個課題,受到不少網友的質疑,認為不如網頁或利用google提供的問卷調查功能那麼方便,尤其有些絕對自由軟體的擁護者,認為這個方式又是被微軟的軟體綁架。甚至還有人傳了一篇某大學教授的文章給我(帶頭升級 Office 2007? 別當害群之馬),這一篇文章我在很久以前就看過,文章中鼓吹一個論點:不要傳遞.docx的格式檔案給別人,以免害別人被微軟綁架。(原文:散佈最新的專利檔案格式 (例如 .docx) 強迫他人升級, 就像製造二手煙一樣…)

對於這種幾乎近於宗教信仰的支持某種理念,我個人的看法是只要不要強迫別人跟著信仰就ok!

只是這篇文章強烈批判別人升級使用微軟Office的產品是害群之馬,這未免太過!

該文主張使用微軟專利格式是傳播二手煙、是傳播病毒,因為微軟的格式有專利,不是開放格式要抵制!

我的看法這種邏輯也是值得商確,現代社會設立專利保護的法律,看似只是保護專利擁有者的利益,但是背後也有推動社會進步的目的,歐美社會在科技創新與商業模式創新領先其他社會,與其對專利的高度保護有很大關係。當然不可諱言的法律不可能完美,也許過度的專利保護反而阻礙社會的進步,所以批判的對象也許不應是微軟,而是西方過度擴大的專利保護範圍!

談到這裡最近整修浴室為了徹底解決浴室臭味的問題,與水電師傅反覆實驗幾個禮拜,終於把臭味的問題,其中讓我印象深刻的是一個效果比『上不來』這種落水頭好的『防臭落水頭』,兩者價格差了6倍,因為後者有專利所以價格差很大。仔細去研究所謂的『防臭落水頭』,只是一個簡單的構想設計,把水管的儲水彎的原理,直接與落水頭結合而已,為什麼那麼多人沒有想到。

寫一篇小說是創作,不會有人批評你不免費給別人看或引用,一個小小的『防臭落水頭』設計,也有專利保護,也不會有人質疑,想一想那些埋頭苦寫程式開發軟體的人還真可憐。如果自由只能是某些人認定,這種倒底是真自由或是另一種不自由!

以上發發牢騷,看看就好!

回到主題如何回收電子問卷?派送可以用電子郵件,回收當然也可以用電子郵件,我要再次強調這個方案是針對沒有伺服器資源的人,不要再與我爭論,如果自己有網路伺服器資源,可以直接設計互動網頁的問卷調查,不需要使用這種方式!

另外解決問題的方案有很多種,這種透過電子郵件回收問卷調查資料的方法,現在已經很多像google的線上試算表文件,微軟的outlook投票功能或access收集資料的功能,雖然都有一些限制,但大致上都可以達到類似的目的。

我個人派送問卷是使用ExcelMail(請自行參閱ExcelMail3.0群組寄信軟體介紹(三):批次寄送附加檔),而回收的時候我是使用outlook來進行回收,利用outlook的規則與通知我可以將問卷的回信過濾集中在特定的資料夾。

image

例如我已經將問卷調查回信集中於”收件匣”中的”問卷調查”資料夾,我要把該資料夾中的信件附件都儲存至

“f:\問卷調查\"這個目錄。

image

如果問卷量不多我會手動去下載每一封回信的附件,但是如問卷的回信量很多,我會利用以下的用VBA寫的巨集程序,把檔案集中下載在某一個資料夾。此程序是修改微軟outlook的說明範例

Sub SaveAttachmenttodir()
    Dim myAPP As Outlook.Application
    Dim myItem As Outlook.MailItem
    Dim myAttachments As Outlook.Attachments
    Dim i As Long, j As Long

    Dim myFolder As Outlook.folder
    Dim myNamespace As Outlook.NameSpace

    Dim strfilepath As String

     strfilepath = “f:\問卷調查\"
    Set myNamespace = Application.GetNamespace(“MAPI")
    Set myAPP = Outlook.Application
    Set myNamespace = myAPP.GetNamespace(“MAPI")
    Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox).folders.Item(“問卷調查")

    For i = 1 To myFolder.Items.Count
        If TypeName(myFolder.Items(i)) = “MailItem" Then
            Set myItem = myFolder.Items(i)
            Set myAttachments = myItem.Attachments
             For j = 1 To myAttachments.Count
             myAttachments.Item(j).SaveAsFile strfilepath  & myAttachments.Item(j).DisplayName
                Next j
        End If
        Next i

End Sub

使用方法:

1.首先必須有outlook2007或以上的版本

2.請打開outlook2007『工具』/『巨集』/『Visual Basic 編輯器』。

image

3.在專案下新增一個模組,把程式碼貼上即可。

 image

4.另外必須將巨集安全性設定為可執行的選項。

image

5.執行巨集SaveAttachmenttodir即可!

image

ExcelMail3.0群組寄信軟體介紹(四):寫一封中式直書的邀請卡給老同學

電腦是洋人發明的洋玩意,所以一些設計都是按照洋人的使用習慣去設計,例如文字輸入排版都是橫書為主,所以早期要建立中式直書的電子文書並不容易,許多廠商努力去開發一些符合我們輸寫習慣的文字編輯軟體,結果在前任政府以資訊化及世界接軌為由,規定將政府的公文書改為橫式輸寫,英文公文給老外看依西方的書寫習慣理所當然,但中文的公文是給本國人看,為什麼要用西方人的輸寫方式?在我看來是有一點可惜,其實經過這麼多年軟體開發者的努力,現在建立直書文件這些資訊技術並不難,政府為了屈就於資訊技術而捨棄自己原有文化的獨特性,其實非常可惜,直式書寫中文有其獨特的美感與民族文化的意涵。

我們要如何建立一封傳統的中式書信? 用網路上已經有寫出來將橫書文字排列轉換成直書的程式,將內容進行排列再貼至寄信軟體之中寄出。這個方式有一些缺點,利用重新排列的方式來呈現,好處是文字內容可以進行編輯重複利用,但是缺點是不見得所有信件閱讀軟體能夠正確讀出,很可能因為一個字排列錯誤,整個文字內容都錯了。用圖檔傳送也許是比較好的方式,直書的內容不容易跑掉,在word中我們可以利用直書的文字方塊快速建立直書的內容,而word的文字方塊是可以轉成圖檔資料。所以我們朝這個方向去思考問題解決的方案。於是我在ExcelMail中設計一個可以將word文件以信件方式寄出的功能,只要利用word2007插入直書的文字方塊建立信件,再點選轉換成電子郵件,再啟用ExcelMail即可將信件內容載入,執行寄信之功能,寄出即可得到直書信件。

要達成這樣的功能其實沒甚麼秘密之處,重點就是我們的信件內容要讓讀信軟體看得懂,所以我只是將word信件另存成成xml格式的單一網頁內容,再將內容中部分擷取出來,重組為電子郵件的規格而已。 但是這個方法只能在Word2007的版本使用,之前的word2003是無法使用的,因為xml格式的關係。

另外還有一個進階的問題必須克服,在群組寄信中,如果每封信都一樣那還好解決,因為只要完成一個word檔即可。如果希望每封信內容不一樣,不修改word直書的文字方塊內容就不可行。所以我們還必須設計一個功能,可以在word上進行信件內容轉換,讓我們可以用批次修改信件內容的方式,讓每一個收件者收到不同之內容。這個程式功能設計的概念大致如此,我們用一個實際的例子來示範,從這個例子相信讀者也可以看得出來vba作為offfice系列軟體組合黏膠的角色,其功能強大之處。

舉例來說我要辦一個大學同學會,我要寄一封像下圖這樣的邀請卡給大學同學,要如何做?

image

1.首先利用word2007以後的版本建立信件檔案,利用直書的文字方塊建立像以下的檔案,如果有比較漂亮的字型可以選擇一些較古典的字型,讓我們的信件更古色古香。注意信件收件者的抬頭”大名”,這是我們要取代的欄位名稱。

image

存為”同學會邀請函.docx”然後關閉word程式,此檔案為產生批次信件的本體!

2.建立同學通訊錄的Excel工作表如下(我們用不同的網頁郵件信箱,看看收到的信件是否不同),欄位標題分別為

電子郵件
姓氏
大名

image

3.啟動ExcelMail登入郵件帳號,進行寄信群組的建立(可以參考前ExcelMail3.0介紹前二篇文章),參數設定如下圖:

image

注意!與前面範例不同處,我們必須新增一個參數選擇『批次取代前文』,因為我們希望每封信件內容中抬頭是每位收件者的大名,所以我們在通訊錄工作表中選取標題為”大名”這個欄位,然後按下『批次取代前文』這個欄位『選取』的按鈕,將選取區的名稱輸入為”大學同學”。

4.再來我們還必須設定一個選項,在『寄送電子郵件』表單功能列中『設定』選項,勾選『啟用批次word信件功能』/『以封裝檔案寄送』

image

5.設定完所有參數,如果要確認信件沒有錯誤,可以先點選『測試寄信』,寄一封給自己看看是否正確。按下『測試寄信』,在『輸入郵件數』,輸入測試的信件數。

image

在『選取word檔案』對話框中選擇前面所建之”同學會邀請函.docx”

image

因為要啟動word程式,可能要等一會兒才會出現以下對話框,因為我們要用Excel工作表中”大名”這一欄的資料,取代word信件中”大名”二字,所以要告訴程式此資料欄位的抬頭(標題列)是那一列,在此範例為第一列,所以我們按確定即可。

image

程式開始執行寄信,在『信件前文內容』我們會看到寄出去的原始檔案內容,這個是xml格式內容。

image

6.完成寄信我們至gmail帳號看一下成果。信件內容大致沒問題,但是我們信件主旨打錯一個字,還好沒有寄出去,再改一下。

image

7.確定沒有問題之後,我們按下『開始寄信』,重覆剛才的步驟,不過因為是正式寄信,程式會直接將選取區的名單直接寄出,不會再問要寄多少封。完成寄信之後,我們看看各家網頁郵件信箱中呈現的內容是否有所不同。

open webmail 看到的是

image

yahoo 看到的是

image

livemail 看到的是

image

8.經過測試各家的電子郵件服務都可以正確呈現我們利用gmail所寄出的信件。

9.2010/12/25 12:30之前下載ExcelMail3.0之網友,請至增益集工坊重新下載,我已經將新的檔案傳至該網站。

ExcelMail3.0群組寄信軟體介紹(三):批次寄送附加檔

在ExcelMail中我們可以讓每一位收件者收到不同的附件,舉例最近耶誕節快到了,我們要針對不同的對象寄送不同類型的耶誕卡,例如年紀小的我們給他可愛的賀卡,年長的給比較正式的賀卡。

如何進行?

1.首先我們可以先將卡片檔案集中在一個資料夾中,例如我們把卡片檔案(通常是影像檔)儲存於D磁碟機中的名為”賀卡”資料夾,在資料夾中我們儲存兩張賀卡檔案,檔名分別為”可愛的.JPG”與”正式.JPG”。

image

2.我們必須將賀卡的所在的路逕資料加入我們要寄信的Excel工作表中,以下為例:

image

要快速的建立卡片資料,可以使用『資料處理過濾增益集』中的目錄管理功能,可以很快將卡片資料讀入Excel工作表中,在利用篩選與工作表處理將資料指定給特定的人員。

3.啟動ExcelMail登入帳號,進入『寄送電子郵件』,依序設定收件者姓名、email地址、信件主旨,然後選取賀卡所欄位資料,再點選『附加檔案』的『選取』,輸入附加檔案的選取區名稱為”賀卡”。

image 

4.接下來最重要的步驟是:再勾選『批次對應附加檔案』,程式會將選取的資料重新進行批次對應,然後請重新輸入附加檔案的選取區名稱為”批次附加檔案”程式設定最後如下圖所示。

image

5.我們可以先測試寄3封信,看看是否能產生不同的附加檔案信件。進入gmail我們可以看到收到三封寄給自己的信

image

第一封收件者詹安思,賀卡是”可愛的.jpg”

image

第二封收件者練芷蓁,賀卡是”正式.jpg”

image

第三封收件者林允巧,賀卡是”可愛的.jpg”

image

6.確定正確可以執行『開始寄信』

ExcelMail3.0群組寄信軟體介紹(二):依特定條件建立群組的功能

各個郵件軟體都提供群組寄信的功能,ExcelMail結合Excel工作表資料篩選,將資料作為群組的分類依據,舉例來說我要寄信給某次考試不及格同學補考的通知單,如果要在一般郵件軟體利用群組寄信進行個別通知可能不容易,必須把這些人挑出來進行通知,一次兩次還可以,但如果是經常性的例行通知,每次不及格的人都不同,這樣的工作就太麻煩了。

在ExcelMail中我們可以利用資料篩選進行群組建置,而且可將群組以篩選規則來定義,以後只要指定群組名稱,ExcelMail會以規則去找出收件的人員。

如何進行?我們以下表為例,此表為學生某次成績的資料,欄位分別是:電子郵件、座號、姓名、總分

image

1.先啟動ExcelMail在到『寄送電子郵件』的表單,點選『啟動篩選』按鈕。

image

2.在『選取符合篩選條件的收件者』表單中指定『收件者姓名範圍』,再指定『篩選的欄位』,以本例我們以學生的總分欄位(欄位為D)作為篩選的依據,另外指定email資料所在的欄位名稱,以本例為例我們將學生的電子郵件放在A欄,再來取消『用正規表示法比對』的設定,勾選『自動篩選有資料的範圍』與『以篩選規則儲存』選項,在『數值比對以x代表資料格的值』文字方塊中輸入x<60,此代表要篩選出總分是小於60分的收件者,然後按下『執行篩選』,在『篩選結果』會出現符合資料的參照,然後在『輸入儲存範圍名稱』文字方塊中輸入”不及格者名單 ”,再按下『儲存』鈕,即可完成群組的建立,如果不再進行篩選動作,則『選取符合篩選條件的收件者』表單會關閉,回到『寄送電子郵件』的表單。

image

3.回到『寄送電子郵件』的表單中會出現一個名為”不及格名單 “的群組,而且因為是以篩選規則進行進立群組,只要學生分數有異動,再次點選”不及格名單 “群組程式自動會將符合篩選條件的人員找出來,這樣就可以避免要不斷重新建立群組的動作,這個在學校行政群組的建立蠻好用的,學校幾乎每一學年會進行教師職務的異動,每次異動如果使用outlook express的群組功能,必須大費周章調整名單,利用這個只要將人事室提供的新的職務資料貼至篩選欄位,就可以自動完成群組的建置。

image

ExcelMail3.0群組寄信軟體介紹(一):批次寄送個別收信者資料

前言:從Excel2.0與ExcelMail3.0的不同處在於3.0完全是在.NET的平台開發出來,因為Excel2.0用了不少的vb6的控制項,按照未來發展的趨勢,在64位元的環境這些利用vb6所設計的軟體可能無法使用,所以在Excel3.0乾脆全部用VB.NET進行設計,不過因為對於VB.NET的一些語法概念還不是很清楚,所以基本上大部分還是按照Excel2.0中VB6的語法去修改,利用VS2005 進行編譯有一堆警告出現,不過程式是可以執行。評估一下執行效能,看起來VB.NET的程式是比VB6編譯成 native code 的程式慢。

為什麼會想要在Excel上加入信件寄送的功能,主要是當時為了推行資訊化,想要透過電子郵件寄送薪資單,鼓勵同仁使用電子郵件,後來慢慢針對群組寄信的功能進行加強,逐漸發展成現在這個形式。

壹、如何使用ExcelMail3.0

1.舉例我們是公司的會計準備要寄薪資資料給員工,首先在Excel2007中建立薪資工作表,如下表

image

2.到增益集工坊下載ExcelMail3.0安裝之後,在『增益集』功能區中會出現『電子郵件』按鈕。

image

3.點選『電子郵件』之後會出現登入之表單畫面。

image

在3.0中加入使用SSL進行認證的功能,所以可使用GMAIL或HOTMAIL這些需要寄信認證的網路服務,測試過是可以完成寄信。已經預設一些常使用的免費信件服務伺服器,與服務的PORT號。

如果需使用SSL認證請勾選需認證的選項,為避免亂寄垃圾郵件所以還是保留POP3登入認證。

另外ExcelMail3.0不再支援Excel2003,另外郵件分析的功能暫時停止開發。

注意:請參考各家mail服務商關於使用smtp寄信與pop3帳號使用方法,例如使用gmail時輸入帳號名稱必須包括@gmail.com

4.登入之後程式主畫面會出現,首先填入寄件者姓名(例如本範例我們以會計身份寄信)

image

5.再來在薪資工作表中,將收件人的姓名資料選取反白,按下『寄送電子郵件』主表單中『收件者姓名』的『選取』按鈕,建立『收件者姓名』資料的群組資料

image

,在『請輸入收件者選取區域的名稱』輸入對話方塊中輸入此資料區域名稱,此區域名稱即為群組名稱。

image 

如果要連續選收件者姓名資料,請按是即可連續增加收件者姓名資料,如果已經不再選取請按否。

image

完成動作之後,『收件者姓名』下拉選單會出現員工薪資的資料!

image

6.再來在薪資工作表中,將收件人的電子郵件資料選取反白,按下『寄送電子郵件』主表單中『收件者E-Mail地址』的『選取』按鈕,建立『收件者E-Mail地址』資料的群組資料,注意收件者姓名與電子郵件地址必須在工作表中對應,也就是每一位收件者與其電子郵件地址必須在同一列。

image

7.如果每一位收件者的信件主旨不同,將要給收件人的信件主旨資料選取反白,按下『寄送電子郵件』主表單中『信件主旨』的『選取』按鈕,建立『信件主旨』資料的群組資料,注意收件者姓名與信件主旨必須在工作表中對應,也就是每一位收件者與其信件主旨必須在同一列。如果每一位收件者的信件主旨都相同,直接在『信件主旨』的文字方塊中輸入主旨,以此範例信件主旨是12月份的薪資。

image

8.接下來我們將要寫的信件內容直接輸入在『信件前文內容』即可,可以是純文字、也可以是HTML。不過在我們要示範一個特別的範例直接將Excel工作表資料寄給收件者,而且我們不希望收件者收到其他人的薪資資料,要達到此目的我們必須做一個設定。

image

9.先將所有收件者的薪資資料選起來反白,不要選到欄位標題,按下『寄送電子郵件』主表單中『插入選取資料』的『選取』按鈕,建立『插入選取資料』資料的群組資料,注意收件者姓名與插入選取資料必須在工作表中對應,也就是每一位收件者與其薪資資料必須在同一列,否則就會發生慘劇(薪水資料給錯人)

image

完成選取之後在『插入選取資料』的下拉選單可以看到員工薪資群組,但是注意此時還不可以寄信,還必須勾選『批次對應插入選取資料』,否則所有收件者都會收到一份所有人薪資的資料表。

image

10.最後可以進行寄信,建議先執行『寄送電子郵件』主表單中『測試寄信』功能,預防萬一尤其此等重要信件,測試寄信會將信件寄給寄件者的電子郵件信箱,也就是登入的電子郵件帳號。

image

11.執行『測試寄信』時會出現以下對話框,要使用者輸入寄發郵件的數目,預設是一封也就是會把第一個收件者所收到的信件寄給寄件者,如果輸入2,則會將第一個收件者與第二個收件者所收到的信件寄給寄件者。

image

因為我們要寄送Excel工作表資料,所以還會出現一個對話框詢問是否要加上欄位抬頭(標題列)

image

如果回答是,會出現另一個對話框,請使用者輸入標題列是在工作表的第幾列,不一定是第一列可以只依需要指定,在此範例我們是第一列為標題列

image

12.狀態列出現郵件送出,即完成寄信動作。

image

13.我們進入gmail看一下信件內容是否正確?

如果沒有勾選『批次對應插入選取資料』,就是慘劇一樁,每一個收件者收到所有資料,像下圖

image

如果有勾選『批次對應插入選取資料』,則每一個人只收到他本人的薪資資料。

image

14.確定沒有問題可以執行『開始寄信』