WORD自動化文件設計範例:聯絡簿範本

現在的國中生雖然已經在學校很多年,但是要他們抄個聯絡簿還是落東落西,經常重要的訊息不是沒寫到就是寫錯。很多導師只好用小學一二年級的方法,把重要訊息用電腦打字,全班有幾位學生就複製貼上幾個,作成一張列印出來(如下圖),再請學生裁剪貼在聯絡簿上。

image

這件工作看起來是小事一件,但是每天如果都要複製貼上二三十次也是有點煩。雖然我不是導師,但是因為我負責升學報名的業務,最近一堆升學相關的重要訊息,要麻煩導師轉知家長學生,為了減輕導師端的負荷,只好我自己來做要貼聯絡簿的資料,作成一張然後複印27份給九年級各班導師。

這種事做兩次就有點煩,就乾脆設計一個WORD巨集範本(範本下載連結),這個範本的功能很簡單,使用者下載檔案解壓縮之後,只要用滑鼠點範本檔案(聯絡簿範本.dotm)兩下,自動會啟動WORD,並以此範本新增一個WORD檔案,內容如下:

image

使用者只要依提示在表格的第一格輸入要通知家長的訊息,然後點選[增益集]功能區,會看到[自訂工具列]中會出現[複製訊息]這個按鈕,只要按這個按鈕,範本中的巨集程式自動會將第1格的內容複製貼到其它格子中。

image

舉例我要通知學生家長模擬選填的起迄時間,我在表格的第一格輸入以下內容

image

 

然後點選[增益集]\[自訂工具列]\[複製訊息],巨集程式自動將訊息複製貼到表格中所有格子(如下),使用者就不用複製貼上那麼多次。

image

 

巨集程式碼如下

'作者:楊煥謀 20140225
Sub t()
Dim i As Long, j As Long
Dim c As Long
Dim r As Long
 ActiveDocument.Tables(1).Select

c = ActiveDocument.Tables(1).Columns.Count
r = ActiveDocument.Tables(1).Rows.Count

For i = 1 To c

For j = 1 To r

ActiveDocument.Tables(1).Columns(1).Cells(1).Select
Selection.Copy

ActiveDocument.Tables(1).Columns(i).Cells(j).Select
Selection.Paste


Next j

Next i

End Sub
Sub addmain()
On Error Resume Next
    Dim obCommandbar  As CommandBar
    Dim newItemI1 As CommandBarButton
   
    Set obCommandbar = ActiveDocument.CommandBars.Add(Name:="聯絡簿", Position:=msoBarTop, Temporary:=False)


    obCommandbar.Visible = True
    
    
   
     Set newItemI1 = obCommandbar.Controls.Add(Type:=msoControlButton, Temporary:=False)
   
    With newItemI1
    .Caption = "複製訊息"
    .Enabled = True
    .BeginGroup = True
   .Style = msoButtonWrapCaption
.OnAction = "t"
    End With
    
    
    
   
  Set obCommandbar = Nothing
    Set newItemI1 = Nothing
    
End Sub


Sub dc()
On Error Resume Next
    
     ActiveDocument.CommandBars("聯絡簿").Delete
End Sub

注意事項:

1.現在的班級人數大概是30人左右,範本的格子數目為32,版面是B4大小,使用者可以依照需要修改表格的欄列數目,或變更版面大小,但是記得程式只針對文件中第一個表格進行操作。

2.範本是在WORD 2010撰寫,要用於WORD 2003,請開啟範本利用另存新檔的功能儲存範本為2003的範本格式。

為什麼合併列印頁碼都是1,不會隨著文件頁數增加?

昨天和同事去打球,問了一個關於合併列印的問題,在完成合併文件之後發現,每一頁的頁碼都是1,而不會隨著頁數增加。

舉例下圖我們合併列印的原始文件,我們要合併10筆姓名資料。

 

image

 

執行合併時我們選擇編輯個別文件來觀察。

 

image

 

設定合併資料的筆數1-10

 

image

 

合併的結果如下

 

image

執行插入頁碼

image

執行的結果如下

image

 

發現所有頁碼都是1,明明有10頁可是頁碼都是1,列印的時候雖然只輸入1頁,但是合併的文件全部都列印出來,難道是word的bug嗎?

 

image

 

其實仔細觀察插入頁碼的畫面,我們會發現其實合併文件是以節作為一筆資料的單位,所以不管多少筆資料都算在1頁上,只是不同節而已,所以我們插入頁碼,呈現出來的都是1,如果我們希望數字與資料筆數對應,我們要插入的應該是﹝節碼﹞而非﹝頁碼﹞,如何插入﹝節碼﹞?

最快的方式是在合併列印的原始文件中,插入頁碼然後同時按Alt+F9,秀出頁碼的功能變數(如下圖)

 

image

 

直接修改﹝頁碼﹞功能變數{Page}為﹝結碼﹞的功能變數{Section},為了方便觀察我把頁碼的字型顏色更改為黑色,再同時按Alt+F9隱藏功能變數,再執行合併即可,合併的結果如下:

 

image

 

角落的數字不再只是1,而是隨著合併資料筆數增加,注意:列印時如果要印第2筆資料至第5筆資料,必須在列印範圍參數設定

為 p1s2-p1s5 , 而不是2-5 。如果設定2-5為範圍,這樣根本印不出任何東西,因為只有1頁根本沒有第2頁,更遑論要列印第5頁。

 

(參數p代表頁,p1指的是第1頁,s代表的是節,s2是指第2節,p1s2指的就是第1頁的第2節)

 

image

數學化學繪圖工具增益集 32bit office 2013適用版發佈

前幾個禮拜把數學化學繪圖工具增益集安裝至office 2013進行測試,錯誤還蠻多的。主要是office2013的座標系統有變更,所以繪製的路徑無法轉成正常的動畫路徑,測試一兩個星期終於搞定,把它發佈為2.0.6版,這個版本相容於2003~2013。開發這個軟體,從讀研究所開始構思到現在,十年過去了,雖然沒有塵滿面,卻已鬢如霜!

image

數學化學繪圖工具增益集2.0.5修正說明

因為Word 2010 在執行[數學化學繪圖工具增益集]時在圖形繪製完成時要進行群組,Word2010會不明原因當掉,一直找不出原因,所以在Word 2010 我把繪製完成後自動群組功能取消,讓使用者在繪製完成自行手動群組,

image

如果要選取繪圖的物件,使用者可以利用Word 2010 中[常用]的功能區中的[選取]\[選取窗格],透過選取窗格選取繪圖物件會比較容易,選擇後再手動進行群組。

image

另外修正 Word 2010 的座標參照錯誤的問題,Word 2003~2010圖件的參照座標不盡相同,所以在圖案繪製與標示圖片時,在Word 2010會有位置與標示座標錯誤的問題,目前新上傳的版本已經修正,使用者請重新下載修正。

另外[數學化學繪圖工具增益集]暫不會發行64bit的版本,因為[數學化學繪圖工具增益集]是利用vb6所開發之程式,因為vb6並沒有開發64bit的編譯器,所以暫時不會有64bit的版本,使用者如果要使用本增益集,必須是32bit的 office 2003~2010的版本,另外office 2003不支援化學模組僅能使用數學模組。

數學化學繪圖工具增益集 2.0.5 32bit office 2010適用版發佈

好一陣子沒有去更新這支程式,利用這兩天把一些網友反應的問題修正,另外把程式重新打包,只要使用者使用32bit的office2010 皆可使用『數學化學繪圖工具增益集2.0.5』,不用管作業系統是64bit的win7或32bit的win7。有興趣的網友可以至『增益集工坊』註冊下載。

為什麼輸入Excel資料格的值與呈現的值不同?

102免試高中高職放榜後,放榜的資料是Excel檔案,有人發現這個檔案有一個奇怪的現象,就是在這個檔案的空白欄要輸入一些註記以便統計學生錄取學校的情況,結果發現明明輸入0,可是資料格呈現的卻是64。如下圖中資料格是呈現64,但是資料編輯列中是0。

image

正確的輸入值應該是0,為何呈現的是64?難道這是Excel的bug嗎?

選取我們認為有問題的資料格(T2),再點選Excel2010的[常用]功能區

image

可以發現在[數值]這個區塊出現[自訂],一般這個預設值應該是[通用格式],我們把這個選項展開

image

其實這個就是設定數值格式的功能,其實就是在Excel的[儲存格格式]的功能中,我們可以選取資料格,再按滑鼠右鍵叫出浮動式選單,點選[儲存格格式]叫出[儲存格格式]表單

image

在這個我們認為有問題的資料格中,叫出[儲存格格式]表單,可以看到[數值]這個頁籤中[類型]的值就是64,好像一個遮罩一樣,把我們輸入的值掩蓋住了。

image

我們只要把[類型]改為通用格式就可以正常呈現輸入值。

image

如下圖資料格是呈現0,資料編輯列中也是0

image

 

至於這個功能為什麼要這樣設計?其實有它的需求性,比如我們在進行報告時不希望一些敏感資料洩露,但又不希望改變工作表的運算與輸入結果,我們可利用這個方式把真正的數值隱藏起來,避免在報告時洩露重要的資訊。

Excel 另類應用:檔案管理的綜合運用(將Excel用在提昇英文作文批改的效率)

教高中英文的太座經常會有學生寫英文作文要她幫忙批改,而現在學生電腦能力都不錯,很多都是直接寄電子郵件過來,太座有時沒有完整的批改時間,只能先儲存到電腦,等到較多空堂或回家的時候再批改,檔案一多經常會浪費時間在檔案的管理,改過或未批改的檔案有時會搞混,太座就問有沒有可以比較方便的辦法。

首先針對問題先做一些分析批改這些電子檔案的流程,找出它的『瓶頸反應』,如果能將『瓶頸反應』效率提昇,整體的效率便可提昇。

整個批改的流程中如下圖:

image

這樣的流程我們可以利用office不同的軟體來完成,首先電子檔收件整理,學生一般都是以電子郵件寄來,我會利用outlook的郵件規則幫助郵件的分類與檔案的收集,檔案集中到一個資料夾。

image

在[建立規則]表單中指定規則,例如我們可以要求學生必須在寄信主旨設定為"第二次英文作業",當我們用outlook收信時會自動將主旨是"第二次英文作業"的信件移到outlook中我們設定的[英文作文]資料夾

image

在收完信之後可以利用VBA程式將學生信件中的檔案一次存到特定的資料夾中(可參考我前面文章利用Word來設計電子問卷四),舉例我們將檔案存在學生作業這個資料夾

image

再來我會利用『資料處理過濾增益集』\[WORD表單統計工具]\[讀取檔案目錄資料]在Excel工作表中建立檔案目錄資料

image

在[讀取檔案目錄]表單指定目錄,點選讀取檔案

image

在[選取讀取目錄的檔案]表單選取檔案

image

讀取的檔案目錄資料,這樣可以快速把學生作文檔案與學生成績表連結,方便我們進行批改與登錄成績

image

可是如果要回到檔案總管中一個個開啟學生檔案,這樣要在不同的視窗中尋找很不方便,如果可以在成績表上點選檔案超連結直接開啟學生的作文檔案,這樣會節省很多時間,我們可以利用Excel資料可以輸入超連結的性質,我們將檔案目錄轉成超連結,但是一個個做太慢,我已經在『資料處理過濾增益集』加入快速加超連結的功能點選Excel中[增益集]\[資料處理過濾增益集]\[資料型態轉換]\[超連結]\[加入超連結]

image

在[加入超連結]表單中我們指定學生姓名這個資料加入超連結,而連節資料來源就是學生的作業檔案目錄這一欄

image

按下[確定]我們可以看到學生的姓名資料變成超連結的狀態,只要點學生的名字就可以打開他的作文。

image

因為安全性的關係可能會出現以下的訊息,如果學生的檔案沒有問題(先用防毒軟體掃一下),按[是]即可打開檔案。

image

再來批改可以利用Word2010中校閱的強大功能,可以在文章中加上修訂與註解,批改之後要直接就可以在Excel工作表輸入分數。

image

最後可以利用ExcelMail增益集將批改完的學生的檔案寄回給學生。(可以參考ExcelMail3.0群組寄信軟體介紹(三):批次寄送附加檔)

最後從這個案例或許我們可以得到一個結論,其實這個問題就像很多人在資訊化過程所面對的問題一樣,學了很多軟體,電腦硬體也很先進,但是真正要用來解決工作或生活問題時,卻一招也用不上,如何整合所學到的資訊技術運用到所要完成的工作,可能比漫無目標的學了一堆炫目的技術還重要。

Excel數值資料格式如何轉換成文字格式時,完整保留小數位數格式設定?

有位網友在office 系統論壇發表一個問題:在Excel中如何將特定位數數值格式的資料轉成文字資料?這個功能我已經放在『資料處理過濾增益集』/資料型態轉換/字串

image

 

假設我們的數值資料格式分別為小數點後3位、2位、5位,如下表在Excel中其值分別只記錄為1、3、4。

image

如果單純執行格式設定為文字

image

轉換的結果並不會保留小數位數,如下表所示

image

如果我們要保留原來小數格式,必須利用Excel中的TEXT函數,我已經把它寫入"『資料處理過濾增益集』/資料型態轉換/字串"的功能中,使用者只要將要轉換的資料選取,執行"『資料處理過濾增益集』/資料型態轉換/字串"

image

選擇保留小數位數設定即可

image

執行結果如下

 

image

即可轉換為文字。

如何利用『資料處理過濾增益集3.1』統計Word(Active 控制項)表單?

有網友反應不知道如何利用『資料處理過濾增益集3.1』統計Word(Active 控制項)表單,我們以下列問卷為例。

image

1.假設我們已經回收三份問卷在資料夾中,檔名分別為1.docx、2.docx、3.docx。

image

2.已經安裝好『資料處理過濾增益集3.1』,打開一個Excel檔案。

image

3.點選『增益集』功能區/『Word表單統計工具』/『統計Word表單』,在程式引導下選取表單檔案,在對話框點選『開啟舊檔』

image

4.如果Word表單檔案有設密碼,請輸入密碼,如果沒有請按『確定』即可。

image

5.我們可以透過檢查限制表單編輯密碼是否遭修改,來檢查表單問題是否遭變更,一般問卷應該不會有此現象,通常這個是我用在讓學生考試的時候使用,直接按『否』。

image

6.程式詢問表單類型,這份表單是Active 控制項表單,所以按『否』,程式便開始讀取表單

image

7.讀取的結果會寫入工作表中,一個檔案一列資料,使用者即可進行統計處理。

image