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

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的範本格式。

cool      歡迎引用,請注明來源出處!

作者:楊煥謀