﻿# 自訂 Word 2010 使用者輸入表單教學 (含影片與心得筆記)

有些公司裡常用的表單經常到手後一頭霧水，因為有些表單很少用，所以填寫的時候經常會卡住，有時候真的會忘記不知道要填寫什麼，今天心血來潮把 Word 2010 自訂使用者輸入表單的功能研究了一番，還複習了一下好久沒寫的 VBA 程式，真是過癮! 最後我也錄製了一個十分鐘左右的短片，帶大家快速上手設計 Word 2010 使用者輸入表單。

廢話不多說，直接看影片教學：（ 我有上載 **HD 品質**的影片，所以建議全螢幕觀看 ）

<iframe height="315" src="http://www.youtube.com/embed/76BPxkGbODk" frameborder="0" width="420" allowfullscreen="allowfullscreen"></iframe>

以下附上今日研究心得筆記：

**● Word 內建兩種很容易混淆的控制項：下拉式方塊內容 v.s. 下拉式清單內容**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/18b0b23a776422a81fec-image_1420.png)

如上圖示，這兩個控制項在使用的時候都是下拉選單的樣子，不過在行為上有些不太一樣的地方：

-   下拉式方塊內容 (Combo Box)

-   除了能下拉清單資料外，也可以在方塊內輸入任意文字

-   下拉式清單內容 (Drop-Down List)

-   只能選取清單中的資料，無法自由輸入任何選項外的內容

**● 控制項可以設定保護而不被意外刪除，但真的要批次刪除所有控制項時有個秘訣**

當你在設定內容控制項 (ContentControl) 時，可以設定「鎖定 - 內容控制項無法刪除」(如下圖示)，如此一來在編輯的過程中就不會有誤刪的情況。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/757a53b2841b8e4ae9ff-SNAGHTML5624e3ae.png) 

不過當你編輯好一堆控制項在頁面上，但又有好幾個要批次刪除控制項時，就會變的很麻煩，因為要一個控制項、一個控制項的把勾選拿掉，才能讓你全部刪除。但其實你只要切換到**設計模式**後，就不會被這個選項所限制，還是可以批次刪除這些控制項的。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/979c342f0426e8442a66-image_1421.png)

**● 替控制項設定標題，以及透過 VBA 存取該控制項的方法**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a8f96adba8a40d320091-image_1422.png)

**取得控制項內容的 VBA 程式碼如下：**

```
MsgBox ActiveDocument.SelectContentControlsByTitle("職稱").Item(1).Range.Text
```

**● 從範本新增文件時自動指定控制項的內容**

```
Private Sub Document_New()    ActiveDocument.SelectContentControlsByTitle("請假開始日期").Item(1).Range.Text = NowEnd Sub
```

**● Document\_ContentControlOnEnter 與 Document\_ContentControlOnExit 事件的用法**

```
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, _                                          Cancel As Boolean)    If ContentControl.Title = "請假開始時間" Or ContentControl.Title = "請假結束時間" Then        RecalculateTotalHours    End IfEnd Sub
```

**● 將 VBA 設定數位簽名的方法**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/50ae34e4393e7177b54a-image_1423.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ca1e8a02387df12bee62-SNAGHTML55ccf384.png)

如果你有匯入自然人憑證到你的電腦的話，你就可以選擇到該憑證，直接用自然人憑證來為你的 VBA 專案做簽章！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6bf8ac9152691e85b322-SNAGHTML55d285c5.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9f6d64dab84efe6701e1-SNAGHTML55d3ff47.png)

儲存的時候務必要記得用 **\*.dotm** 來儲存！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/485a8b6ba5636ce4a889-image_1424.png)

存檔的時候，會要求你插入卡片 (自然人憑證)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/48624bd2b38ee06625c0-SNAGHTML55d7aed7.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ef8e81721741ea6d7126-SNAGHTML55d80975.png)

最後輸入自然人憑證的 PIN Code，驗證正確後檔案就會儲存成功，而且是一份含有合法簽章的文件！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/f161ac5836002c0122f9-SNAGHTML55d94f5a.png)

**● Word 2010 常用的一些資料夾與機碼設定**

-   Office 使用者範本路徑 (也就是「我的範本」看到的哪些範本)  
    %APPDATA%\\Microsoft\\Templates
-   Office 啟動範本路徑 (自動載入的範本)  
    %APPDATA%\\Microsoft\\Word\\STARTUP
-   Office 應用程式範本路徑  
    C:\\Program Files (x86)\\Microsoft Office\\Templates\\
-   Office 最近的文件路徑 (Word 2003)  
    %APPDATA%\\Microsoft\\Office\\Recent
-   Office 最近的文件 (Word 2010)  \[ 機碼路徑 \]  
    HKEY\_CURRENT\_USER\\Software\\Microsoft\\Office\\14.0\\Word\\File MRU
-   Office 最近地點   (Word 2010)   \[ 機碼路徑 \]  
    HKEY\_CURRENT\_USER\\Software\\Microsoft\\Office\\14.0\\Word\\Place MRU
-   Office 最近的範本 (Word 2010)  \[ 機碼路徑 \]  
    HKEY\_CURRENT\_USER\\Software\\Microsoft\\Office\\14.0\\Word\\Recent Templates

**● 讓 Office 文件在執行 VBA 時不出現「安全性警告」的方法**

一般來說，我們開啟含有 VBA 的檔案時都會先出現安全性警告，然後要使用者手動啟用才能開始執行，這一點對企業部署含有 VBA 的文件來說非常不方便，解決方法也很簡單，只要把範本或文件複製到 Office 使用者範本路徑下即可，因為這個路徑預設是 Office 信任的來源路徑。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/202f9db0030c4c5363c8-image_1425.png)

如果要自行新增「信任位置」可以參考以下步驟設定：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/7c7e678184862eab9429-image_1426.png)

開啟「信任中心」對話方塊後，切換至「信任位置」，在自行新增一個你認為安全的文件路徑位置即可：

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/fd4286d72b63ebec6deb-SNAGHTML56334e91_thumb.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/522e0ba76945bb2e51a5-SNAGHTML56334e91.png)

如果要連同子目錄下的文件也都設為信任，也可以在新增位置的時候進行設定，如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6b0db37c0229463d7e57-SNAGHTML56349e56.png)

**相關連結**

-   [Create User Entry Forms In Word 2010](http://www.addictivetips.com/microsoft-office/create-user-entry-forms-in-word-2010/)
-   [Word 2010 Developer Reference (MSDN)](http://msdn.microsoft.com/en-us/library/ff841698.aspx)

-   [Working with Content Controls (MSDN)](http://msdn.microsoft.com/en-us/library/ff836891.aspx)
-   [ContentControl Class (2007 System) (2007 System)](http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.contentcontrol\(VS.90\).aspx)
-   [Using Tagged Content Controls to Solve Structured Document Scenarios in Word 2010](http://msdn.microsoft.com/en-us/library/gg605189.aspx)
-   [Document.ContentControlOnEnter Event (Word)](http://msdn.microsoft.com/en-us/library/ff196332.aspx)
-   [Document.ContentControlOnExit Event (Word)](http://msdn.microsoft.com/en-us/library/ff191963.aspx)

-   [Content Control Event Model in Word 2007 - .NET4Office - Site Home - MSDN Blogs](https://learn.microsoft.com/en-us/archive/blogs/eric_carter/content-control-event-model-in-word-2007)
-   [Content Control Grouping & Navigation – Microsoft Word Help, Tips and Tutorials](https://gregmaxey.com/word_tip_pages/content_control_grouping_and_navigation.html)
-   [Modify Content Control Placeholder Text – Microsoft Word Help, Tips and Tutorials](https://gregmaxey.com/word_tip_pages/modify_cc_placeholder_text.html)
-   [Content Controls – Microsoft Word Help, Tips and Tutorials](https://gregmaxey.com/word_tip_pages/content_controls.html)
-   [Installing Word templates – TechWriter](http://www.blueleafsoftware.com/Resources/Writing/Installing_Word_templates)
-   [MS Excel- Format Function with Dates (VBA only)](http://www.techonthenet.com/excel/formulas/format_date.php)
-   [Some Useful Word Macro Examples](http://www.gmayor.com/word_vba_examples.htm)
-   [OfficeDeveloper.NET](http://officedeveloper.net/)
