Microsoft Word テンプレートの操作 - 基礎
Charles Kyle Kenyon
Kenyon Law Offices
Madison, Wisconsin
Frank Rice
Microsoft Corporation
2003 年 5 月
適用対象 :
Microsoft® Word 2000 以降
要約 : テンプレートを使用することによって Word アプリケーションの開発がどのように容易になるかについて説明します。Word テンプレートを使用すると、スタイル、マクロ、ショートカット キー、ユーザー設定のツール バー、定型句などの機能をアプリケーションに表示するタイミングと場所を制御できます。テンプレートによってこれらのすべての機能にアクセスできるので、開発と文書作成の作業の大部分が自動化されます。
はじめに
学習目標
テンプレートを作成する
テンプレート フォルダの概要
全文書対象のテンプレート
Normal.dot テンプレート
テンプレートの序列
テンプレートのスタイル
テンプレートを構成する
テンプレートを操作する
構成内容変更を使用する
テンプレートや文書の中のマクロ
テンプレートのトラブルシューティングを行う
まとめ
テンプレートは、特殊な種類の Microsoft® Word 文書です。テンプレートには、テキスト、スタイル、マクロ、ショートカット キー、ユーザー設定のツール バー、定型句を保存できます。テンプレートを使用して作成した文書はこれらのすべての機能にアクセスできるので、慎重に考慮されたテンプレートを使用している場合は、開発作業や文書作成作業の大部分をユーザーに代わって行ってくれます。しかし、これらの機能の一部しか使用しなくても、テンプレートはユーザー自身や顧客の役に立ちます。
この記事の題材で学習すると、以下のことができるようになります。
- テンプレートと通常の文書を区別する
- 文書テンプレートと全文書対象のテンプレートを区別する
- 文書をテンプレートとして保存する
- 文書に別のテンプレートを添付する
- テンプレートを開いて編集する
- コンピュータ上でテンプレートの場所を検索する
- [ファイル] メニューの [新規作成] に追加のタブを作成する (または、不要なタブを削除する)
- ワークグループ テンプレートを設定して使用する
- 全文書対象のテンプレートを作成する
- テンプレート間または文書間でマクロ、スタイル、定型句をコピーする
- Visual Basic for Applications (マクロ) を使用して作業を自動化する
前述したように、テンプレートは特殊な種類の Word 文書です。テンプレートには、テキスト、定型句、マクロ、ツール バーなどの、他の文書に使用できるコンポーネントが保存されます。さらに、ショートカット キーなどのユーザー インターフェイスの変更や、組み込みメニューやツール バーの変更に関する情報のほかに、スタイル定義も保存されます。
注: 定型句は、反復して使用する契約書の定型文や長い配布リストなど、頻繁に使用するテキストやグラフィックスの保存場所になります。選択したテキストやグラフィックスは定型句として記録され、一意の名前が割り当てられます。
テンプレートと文書の内部ファイル構造は異なります。その違いは年々小さくなっていますが、Word の使い方が高度になるほど、この 2 つを区別することが重要になってきます。文書をテンプレートとして保存すると、名前の最後に ".doc" の代わりに ".dot" という拡張子が付きます。しかし、文書をテンプレートにするのはこの拡張子ではありません。名前が変化するので混乱するユーザーもいると思いますが、名前を変更しただけでは、文書がテンプレートに変更されたり、テンプレートが文書に変更されることはありません。Microsoft Windows® で、このような誤った名前を付けられたファイルは拡張子に応じて文書またはテンプレートであると認識されても、Word ではその違いが認識されます。Word で [ファイル] メニューの [名前を付けて保存] を使用して、文書をテンプレートにすることができます。テンプレートを直接文書に変更することはできません。ただし、テンプレートを基にして新しい文書を作成し、その文書を文書として保存することはできます。次の VBA コード ステートメントを使用すると、カスタム テンプレートを基にして新しい文書を作成できます。
...
Document.Add "C:\Templates\MyTemplate.dot
...
このステートメントは、テンプレートが C:\Templates にある場合に限り有効です。そうでない場合は、エラー メッセージが表示されます。Application オブジェクトのプロパティである Options オブジェクトには、ファイルのパスを決定する場合に便利な DefaultFilePath プロパティなど、複数のプロパティとメソッドがあります。上記のステートメントをもう少し柔軟にするには、以下のように書き直します。
...
Dim strUserTemplates As String
strUserTemplates = Options.DefaultFilePath(wdUserTemplatePath)
Documents.Add strUserTemplates & "\MyTemplate.dot"
...
また、ActiveDocument の AttachedTemplate プロパティを使用すると、作業中の文書にテンプレートを添付できます。このステートメントでは、作業中の文書にテンプレート "Letter.dot" が添付されます。
...
ActiveDocument.AttachedTemplate = "C:\Templates\Letter.dot"
...
テンプレート作成の詳細については、 『Creating a Template-The Basics (Part 1)』(英語) (MVP Suzanne S. Barnhill 著) と 『Creating a Template (Part II)』(英語) (MVP John McGhie 著) を参照してください。
この記事はテンプレート使用の基本に触れていますが、他の記事では扱われないテンプレートについての情報を提供することを目的としています。
文書テンプレートを作成する場合は、"スタイル" に細心の注意を払ってください。
注: スタイルは、文書内のテキスト、表、一覧に適用して文書の体裁を迅速に変更する書式特性です。スタイルを適用すると、1 つのタスクで書式グループ全体が適用されます。
テンプレートを作成または編集する際は、常に [書式] メニューの [スタイルと書式] を使用して文書の書式を変更してください。このようにすると、テンプレート内で直接スタイルを変更する場合よりも、はるかに簡単にスタイルにアクセスすることができます。
テンプレートの書式設定を直接 (スタイルの外で) 行うことは、ユーザーにとっては煩雑な作業であり、不必要に作業を難しくする場合があります。独自のテンプレートを使用している場合は、今からでも遅くはないので、スタイルを使用して書式を設定する習慣を身に付けてください。
情報が多すぎると混乱を招きがちであるという認識から、Word と Windows のどちらにも、ユーザーに情報を表示しない傾向があります。この方針に賛成のユーザーも反対のユーザーもいるでしょう。しかし、この記事では、この非表示になっている情報のいくつかをユーザーが見ることができるようになることを目指しています。具体的には以下の情報があります。
ファイル拡張子
Word 文書が含まれているエクスプローラのウィンドウで、名前に 3 文字の拡張子 ".doc" が表示されていますか? 表示されていない場合、それらを表示するには以下の操作が必要です。
[ツール] メニューの [フォルダ オプション] をクリックし、[表示] タブをクリックします。
"登録している拡張子を表示しない" と同様の内容の選択肢のチェック ボックスをオフにして、[OK] (または [閉じる]) をクリックします。
Mac OS X Finder で拡張子を表示するには、[リスト] または [カラム] (どちらのオプションも [表示] メニューにあります) を表示する必要があります。拡張子が表示されていない場合、[環境設定] メニューの [Finder] をクリックし、[常にファイル拡張子を表示する] をクリックします。
段落記号とセクション記号
これらの印刷されない文字は Word の書式の核心部分です。これらが表示されていないと、文書での作業が難しくなり、書式や文書を壊す可能性が高くなります。既定では、これらの文字は表示されません。文書の書式設定を行う場合は、これらの記号を表示する必要があります。ツール バーの [編集記号の表示/非表示] をクリックします ([標準] ツール バーの [ズーム] ボックスの左にあります)。また、[ツール] メニューの [オプション] をクリックし、[表示] タブをクリックして、[編集記号の表示] の [すべて] をクリックして設定することもできます。
図 1. ツール バーの [編集記号の表示/非表示] ボタン
これらの変更は後で元に戻すことができます。
編集記号を表示しないと文書内で移動しにくくなるので、上級ユーザーは、これらの記号を表示したままにして時間を節約します。
[ファイル] メニューの [新規作成] をクリックすると、[新規文書] 作業ウィンドウが表示されます。
図 2. [新規文書] 作業ウィンドウ
このウィンドウには以下の 4 つのセクションがあります。ここで使用するのは [テンプレートから新規作成] というラベルの付いたセクションです。[標準のテンプレート] リンクをクリックすると、使用しているコンピュータで選択できる項目が表示されます。
図 3. [テンプレート] ダイアログ ボックス
テンプレートを選択して、そのテンプレートを基に新しい文書を作成すると、テンプレートは文書に"添付" されたままになります。新しい文書では、テンプレート内の任意のテキストを使用できます。
文書 (テンプレートのテキストか、ユーザーが入力または挿入したテキスト) で使用されたテンプレートのスタイルは文書に定義され、後で添付が解除されても文書に残ります。文書でテンプレートを使用した後に、テンプレートのスタイル定義を変更しても、そのテンプレートを添付し直すかスタイルを他の方法で文書にコピーし直さない限り、文書のスタイルは変更されません。既存の文書にテンプレートを添付する方法については、後で説明します。
テンプレート内の定型句、マクロ、キーボードのユーザー設定、ツール バーは、文書がテンプレートに添付されている間は文書で使用できますが、通常は文書に転送されません。文書に定型句は保存できませんが、キーボードのユーザー設定、マクロ、ツール バーは保存できます。
テンプレートの添付は、ユーザー インターフェイスから行うほかに、以下のサンプルのようにコードを使用して行うこともできます。このサンプルは、Northwind サンプル データベースからレコードセットを作成し、作業中の文書にテンプレートを添付し、文書に一連のブックマークを挿入します。
Private Sub Document_Open()
Dim Conn As New ADODB.Connection
Dim rsInvoices As New Recordset
Dim objDoc As Document
Dim objTable As Table
Dim strUserTemplates As String
Dim strConnection As String
Dim strCustomer As String
Dim strDBPath As String
Dim strSQL As String
Dim intNumRows As Integer
Dim i As Integer
On Error Resume Next
strDBPath = "C:\Program Files\Microsoft OfficeXP" & _
"\Office10\Samples\Northwind.mdb"
' Northwind データベースへの接続を開きます。
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & strDBPath
Conn.Open strConnection
strSQL = "SELECT * FROM Invoices " & _
"WHERE (((Orders.ShipName)='QUICK-Stop'))"
rsInvoices.Open strSQL, Conn, adOpenStatic, adLockReadOnly
strUserTemplates = Options.DefaultFilePath(wdUserTemplatesPath)
Set objDoc = Documents.Add(strUserTemplates & _
"\Simple Invoice.dot")
' 会社情報を取得して設定します。
SetBookmark ActiveDocument, "CoName", _
rsInvoices("Customers.CompanyName").Value
SetBookmark ActiveDocument, "CoAddress", _
rsInvoices("Address").Value
SetBookmark ActiveDocument, "CoCity", _
rsInvoices("City").Value
' このフィールドで Null を処理する方法。
If IsNull(rsInvoices("Region").Value) Then
SetBookmark ActiveDocument, "CoState", _
""
Else
SetBookmark ActiveDocument, "CoState", _
rsInvoices("Region").Value
End If
SetBookmark ActiveDocument, "CoZip", _
rsInvoices("PostalCode").Value
' 請求先情報を取得して設定します。
SetBookmark ActiveDocument, "BillToName", _
rsInvoices("Salesperson").Value
SetBookmark ActiveDocument, "BillToCompany", _
rsInvoices("ShipName").Value
SetBookmark ActiveDocument, "BillToAddress", _
rsInvoices("ShipAddress").Value
SetBookmark ActiveDocument, "BillToCity", _
rsInvoices("ShipCity").Value
' このフィールドで Null を処理する方法。
If IsNull(rsInvoices("ShipRegion").Value) Then
SetBookmark ActiveDocument, "BillToState", _
""
Else
SetBookmark ActiveDocument, "BillToState", _
rsInvoices("ShipRegion").Value
End If
SetBookmark ActiveDocument, "BillToZip", _
rsInvoices("ShipPostalCode").Value
Set objTable = ActiveDocument.Tables(3)
i = 1
objTable.Cell(i, 1).Range.Text = "Description"
objTable.Cell(i, 2).Range.Text = "Amount"
Do While Not rsInvoices.EOF
i = i + 1
objTable.Cell(i, 1).Range.Text = rsInvoices("ProductName")
objTable.Cell(i, 2).Range.Text = Format(rsInvoices("ExtendedPrice"), "Currency")
rsInvoices.MoveNext
Loop
' クリーンアップします。
Set objDoc = Nothing
Set objTable - Nothing
End Sub
Public Sub SetBookmark(objDoc As Document, sBookmark As String, sValue As String)
If objDoc.Bookmarks.Exists(sBookmark) Then
objDoc.Bookmarks(sBookmark).Range.Text = sValue
End If
End Sub
サブルーチンの最初のセクションを使用して Northwind サンプル データベースへの接続を開きます。
...
strDBPath = "C:\Program Files\Microsoft OfficeXP" & _
"\Office10\Samples\Northwind.mdb"
' Northwind データベースへの接続を開きます。
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & strDBPath
.......Conn.Open strConnection
...
次に、SQL ステートメントを使用して Northwind の Invoices クエリを基にして Recordset オブジェクトを開きます。サンプルでは、取得するレコード数を絞り込むために、SQL ステートメントで WHERE 句を使用して Quick-Stop 出荷者のレコードを取得します。
...
strSQL = "SELECT * FROM Invoices " & _
"WHERE (((Orders.ShipName)='QUICK-Stop'))"
rsInvoices.Open strSQL, Conn, adOpenStatic, adLockReadOnly
...
次に、Options オブジェクトの DefaultFilePath プロパティの wdUserTemplatesPath
列挙を使用して、文書に Invoice.dot テンプレートを添付します。
strUserTemplates = Options.DefaultFilePath(wdUserTemplatesPath)
Set objDoc = Documents.Add(strUserTemplates & _
"\Simple Invoice.dot")
次に、テンプレート内にあるブックマークに設定されたレコードの各フィールドの解析を開始します。
' 会社情報を取得して設定します。
SetBookmark ActiveDocument, "CoName", _
rsInvoices("Customers.CompanyName").Value
SetBookmark ActiveDocument, "CoAddress", _
rsInvoices("Address").Value
SetBookmark ActiveDocument, "CoCity", _
rsInvoices("City").Value
' このフィールドで Null を処理する方法。
If IsNull(rsInvoices("Region").Value) Then
SetBookmark ActiveDocument, "CoState", _
""
Else
SetBookmark ActiveDocument, "CoState", _
rsInvoices("Region").Value
End If
SetBookmark ActiveDocument, "CoZip", _
rsInvoices("PostalCode").Value
以下のコードでは、Bookmarks コレクションの Range オブジェクトを使用する SetBookMark 関数を呼び出して、この処理を行います。
Public Sub SetBookmark(objDoc As Document, sBookmark As String, sValue As String)
If objDoc.Bookmarks.Exists(sBookmark) Then
objDoc.Bookmarks(sBookmark).Range.Text = sValue
End If
End Sub
ブックマークを設定したら、次にテンプレート内にある 3 つのテーブルのうちの 1 つへの参照を作成します。このサンプルでは、3 番目のテーブルには製品名やその製品の総売上高などの製品情報が含まれています。
Set objTable = ActiveDocument.Tables(3)
i = 1
objTable.Cell(i, 1).Range.Text = "Description"
objTable.Cell(i, 2).Range.Text = "Amount"
Do While Not rsInvoices.EOF
i = i + 1
objTable.Cell(i, 1).Range.Text = rsInvoices("ProductName")
objTable.Cell(i, 2).Range.Text = Format(rsInvoices("ExtendedPrice"), "Currency")
rsInvoices.MoveNext
Loop
Table オブジェクトを作成したら、列見出しを設定して、レコード セットの各行をループ処理し、テーブルにデータを挿入します。Format メソッドを使用して、2 番目の列を Currency 型として書式設定します。
最終的に、Access データベースからフィルタされたレコードを挿入した請求書が Word に表示されます。
図 4. テンプレートを使用して作成した請求書
[新規文書] 作業ウィンドウに表示されるテンプレートは、ユーザー テンプレート フォルダとワークグループ テンプレート フォルダにあるテンプレートです。長年にわたるさまざまな設計の変更を経て、独特のテンプレートの操作方法が生まれました。本質的に、[標準のテンプレート] リンクはテンプレートのメイン ソースです。通常、ユーザーは、自分で作成してテンプレート フォルダに保存したテンプレートを使用して作業します。
[標準のテンプレート] リンクをクリックすると、Word はユーザー テンプレート フォルダの場所を確認します (フォルダの場所を設定するには、[ツール] メニューの [オプション] をクリックして [既定のフォルダ] タブをクリックし、ユーザー テンプレートのパスを設定します)。Word で文書をテンプレートとして保存するように指定した場合、このフォルダに文書が保存されます。
図 5. [オプション] ダイアログ ボックスの [既定のフォルダ] タブ
[全般] タブには、このフォルダの最上位にあるすべてのテンプレートが表示されます。このフォルダのサブフォルダにテンプレートが格納されているかどうかが確認されます。テンプレートが格納されている場合、各フォルダはこのダイアログにタブとして表示されます。空のフォルダおよびテンプレートが格納されていないフォルダは表示されません。
少し複雑な設計を行っている場合は、この場所のフォルダではないさまざまなタブが表示されます。それらのタブには、実際にフォルダに格納されていないテンプレートが表示されます。それらのテンプレートは、"組み込みの" テンプレートです。組み込みのテンプレートは、ファイルとしては存在しないことがあります。Word には、プログラムにハードコーディングされたいくつかのテンプレートが組み込まれています。これらのテンプレートは、ユーザーが変更を加えた場合に限り、実際のファイルとして存在します。
組み込みのテンプレートを削除するには、コントロール パネルを使用します。具体的には、[スタート] ボタンをクリックし (Windows 2000 の場合は、[設定] をポイントし)、[コントロール パネル] をダブルクリックします。[アプリケーションの追加と削除] をダブルクリックし、[Microsoft Office] までスクロールして、[変更] をクリックします。表示したくないテンプレートのフォルダを削除し、[更新] をクリックします。
テンプレートを保存するたびに、ユーザー テンプレート フォルダに保存するよう指示されます。テンプレートは希望の場所に移動できますが、[ファイル] メニューから開く [新規作成] ダイアログ ボックスにテンプレートを表示したい場合は、ユーザー テンプレート フォルダかワークグループ テンプレート フォルダに配置する必要があります。
文書に添付されているテンプレートを確認するには、[ツール] メニューの [テンプレートとアドイン] をクリックします。添付されているテンプレートへの完全パスは、文書テンプレート パスに表示されます。ここに表示されているエントリが"Normal" のみの場合、文書にテンプレートは添付されていません。
通常、企業で Word をインストールして使用している場合、ネットワーク上に他のユーザーと共有するテンプレートを保存する場所があります。各ユーザーにこの場所を設定する必要があります。この設定を行うには、[ツール] メニューの [オプション] をクリックし、[既定のフォルダ] タブをクリックして [ワークグループ テンプレート] をクリックします。[変更] をクリックし、会社がテンプレートを保存しているネットワーク上の場所を参照します。
この場所を更新すると、[新規文書] 作業ウィンドウにテンプレートとテンプレートが格納されているサブフォルダがすべて表示されます。残念なことに、これらはすべて混在した状態で表示されます。このため、ワークグループ テンプレートのサブフォルダの場所にすべての企業テンプレートを保存することを推奨します。そのようにすると、テンプレートはダイアログ ボックス上の適切なタブに表示されます。この変更を行った後に、ユーザー更新 .MSI を実行して組み込みのテンプレートをダイアログから削除します。経験からすると、タブの数を 5 から 7 ぐらいに留めて選択肢が多すぎないようにしておくのが最良の方法です。
注: Windows インストーラとインストール パッケージの作成の詳細については、Windows インストーラ SDK を参照してください。Windows インストーラ SDK は、Microsoft Developer Network (MSDN) からダウンロードできます。
ワークグループ テンプレート フォルダとユーザー テンプレート フォルダは、同じコンピュータ上に保存されている場合でも、別個のフォルダにする必要があります。ワークグループ テンプレート フォルダがユーザー テンプレート フォルダと同じコンピュータ上にある場合は、ユーザー テンプレート フォルダ内ではなく、テンプレート フォルダが格納されているフォルダ (つまり、ユーザー テンプレート フォルダの親) に格納してください。通常、親フォルダは Microsoft Office フォルダです。
ユーザー テンプレート フォルダとワークグループ テンプレート フォルダの場所は、Office セットアップ プログラムによって初期設定されます (ネットワーク管理ポリシーなどを使用)。これらのフォルダの場所は、前述の手順でいつでも変更できます。他の Office アプリケーションもテンプレートやその他のファイルをこれらのフォルダに保存します。したがって、既定のフォルダを変更すると、Word だけでなくすべての Office プログラムのテンプレート フォルダの場所が変更されるということに注意してください。
全文書対象のテンプレートは、Word のアドインの一種です。全文書対象のテンプレートは文書テンプレートとは異なるものです。その違いは非常に大きく、両者に "テンプレート" という名前が付いていることが混乱を招いているかもしれません。通常、全文書対象のテンプレートは、文書に "添付" されることはなく、テキストやスタイルを文書に提供することもありません。しかし、定型句、マクロ、ツール バーの保存や共有のための優れた手段となります。
[ツール] メニューの [テンプレートとアドイン] をクリックし、[追加] をクリックして、任意のテンプレートを全文書対象にすることができます。[テンプレートの追加] ダイアログ ボックスが開き、ユーザー テンプレート フォルダの内容が表示されます。ここからテンプレートを選択します。別の場所に移動して、そこからテンプレートを追加できます。全文書対象のテンプレートはテキストを提供せず、新しい文書の開始に使用されないので、ユーザー テンプレート フォルダとワークグループ テンプレート フォルダの両方から離しておくようにします。このようにしてテンプレートをアドインとして追加すると、そのテンプレートは Word を再起動するまで全文書対象のままになります。Word を再起動したときは、必要に応じてテンプレートを再度追加します。あるいは、テンプレートまたはテンプレートへのショートカットを Word のスタートアップ フォルダに格納して、起動時にテンプレートを自動的に読み込ませます。これは Windows の [スタート] メニューのスタートアップ プログラム フォルダではなく、Word 専用のものです。[ツール] メニューの [オプション] をクリックし、[既定のフォルダ] タブをクリックして、このスタートアップ フォルダの名前と場所を確認 (または変更) できます。
全文書対象のテンプレートをネットワーク上で共有する場合は、すべてのユーザーがファイル読み取りアクセス権を持つネットワーク サーバー上のフォルダにそのテンプレートを置く必要があります。ネットワークのバージョンがユーザーのバージョンより新しい場合は、ユーザーのローカルの起動ドライブにファイルをコピーするように各ユーザーのネットワーク ログイン ファイルを設定する必要があります。このようにすると、テンプレートの更新時にユーザー全員を Word からログオフさせなくても、更新作業を行うことができます。
ログイン スクリプトを操作できない場合やテンプレートの更新の心配がない場合は、各ユーザーの Word スタートアップ フォルダでテンプレートへのショートカットを使用したいことがあります。そのようにすると、変更を行ったときに全ユーザーの Word のインスタンスが自動的に更新されます。テンプレートが独自のもので共有しない場合は、テンプレートを自分のスタートアップ フォルダに格納するか、他の場所に保存してショートカットを使用して Word に読み込みます。
同様に、起動時に読み込まれない一時的な全文書対象のテンプレートを使用することもできます。この種のテンプレートでは、ほとんどの文書では使用されない (または必要がない) けれども、複数のテンプレートやそれを基にした文書で使用されるリソースを共有できます。これを行うには、それらのリソースを必要とするテンプレートの AutoOpen マクロと AutoNew マクロに VBA コマンドを含めます。これらのマクロは、全文書対象のテンプレートを現在の Word セッション限りのアドインとして読み込みます。したがって、テンプレートのリソースを必要とする文書の 1 つを作成したときや開いたときに、リソースが使用可能になります。
Word スタートアップ フォルダ内に "全文書対象のテンプレート" という名前のフォルダを作成して、このような全文書対象のテンプレートを保存するとよいでしょう。こうすれば、起動時に読み込まれず、見つけやすく、[ファイル] メニューの [新規作成] ダイアログ ボックスには表示されません。
Normal.dot は、Word によって作成され使用される特殊な全文書対象のテンプレートです。全文書対象のテンプレートではありますが、文書テンプレートとして使用されることがよくあります。他の全文書対象のテンプレートとは異なり、Normal.dot はユーザー テンプレート フォルダに格納する必要があり、共有も避けなければなりません。また、これも他の全文書対象のテンプレートとは異なる点ですが、開いているすべての文書 (他のテンプレートを含む) とスタイルを共有します。[新規作成] ボタンをクリックするか、[ファイル] メニューの [新規作成] をクリックして [新しい文書] をクリックすると、既定では Normal.dot テンプレートを基にした文書が作成されます。
一般に、Normal.dot は、少なくとも机の一番下の鍵付きの引き出しと同様にプライベートなものだと見なされています。Normal.dot にはユーザー設定のスタイルなどのカスタマイズされた設定が保存されています。したがって、他のユーザーの Normal.dot を変更すると、そのユーザーは普通は気分を害するでしょう。これには、Normal.dot に VBA コードを含めて、他のユーザーに配布するという行為も含まれます。この行為に反対する主な理由はいくつかあります。まず、Normal.dot が何らかの理由で壊れ、置き換える必要が生じた場合、このテンプレート内のコードも失われます。第二に、ユーザーが Normal.dot の設定をカスタマイズしている場合、他のユーザーの Normal.dot を使用すると、それらの設定がすべて失われます。
Word は Normal.dot ファイルを見つけられないと、既定の設定で新しい Normal.dot を作成します。Normal.dot の既定のインストール場所はユーザー テンプレート フォルダです (一部の言語バージョンでは、Normal.dot の名前が若干異なっています。また、Normal.dot の名前を変更するウィルスが少なくとも 1 つはあります)。特別な状況 (1 台のコンピュータに複数のユーザーがいる場合や、複数のバージョンの Word がある場合など) を除いては、Normal.dot は 1 台のコンピュータに 1 つしかありません。
注: この記事では扱いませんが、番号付きの箇条書きテンプレートと呼ばれる 4 番目の種類のテンプレートもあります。Microsoft では、番号付きの箇条書きも "テンプレート" と呼んでいます。このテンプレートは、この記事で扱ったテンプレートとは異なり、レジストリ エントリであり、独立したファイルではありません。
s
ここまでで、文書テンプレート、全文書対象のテンプレート、および Normal.dot テンプレートの添付の方法を見てきました。競合がある場合にはどうなるでしょう (同じ名前を持つ 2 つの定型句やマクロがある場合など)。これは、Word によって設定された規則に準じます (規則を見つけるのはあまり簡単ではありませんが)。同時に読み込まれる複数のテンプレート内のマクロ、スタイル、または定型句に同じ名前を付けない限り、通常はこの序列を知る必要はありません。序列は以下のようになります。
- まず、"文書をチェック" します。
- 文書内にあるマクロやスタイルは、同じ名前を持つ他のマクロやスタイルがある場合に、それらに優先して使用されます。
- 文書に保存されているツール バーやキーボードの変更は、他の場所に保存されているものより優先されます。しかし、文書とテンプレートの両方に同じ名前のツール バーがある場合は、文書がアクティブになっているときにどちらも使用可能になります。
- 次に、"添付されているテンプレートをチェック" します。
- 添付されているテンプレート内にあるマクロやスタイルは、同じ名前を持つマクロまたはスタイルが文書内にある場合を除いて、他に優先します。
- 文書を作成した後に変更したテンプレート内のスタイルは、スタイルを更新すると文書で使用できるようになります。
- テンプレートに添付されている定型句は、テンプレートや全文書対象のテンプレートに同じ名前の定型句がある場合に、それらの代わりに使用されます。文書には定型句は含まれていません。
- 添付されているテンプレートに保存されているツール バーやキーボードの変更は、Normal.dot やその他の全文書対象のテンプレートに保存されているものより優先されます。
- その次に、"Normal.dot をチェック" します。
- Normal.dot 内のすべてのスタイルは、あらゆる文書で使用できます。文書内の既存のスタイルは、更新されない限り Normal.dot のスタイルの属性の代わりをすることはありません。Normal.dot には 1 つの文書で使用されたものよりはるかに多くのスタイルが含まれています。
- Normal.dot 内のすべてのマクロと定型句はあらゆる文書で使用できます (添付されているテンプレートまたは文書にある同じ名前のアイテムによって優先されない限り)。Normal.dot は、共有のマクロを保存する場所ではありません。
- Normal.dot に保存されているツール バーやキーボードの変更が適用されます。Normal.dot とその他の全文書対象のテンプレートが競合した場合は、Normal.dot が優先されます。
- 次に、"その他の全文書対象のテンプレートとアドインをチェック" します。前述のように、これらはスタイルを提供しません。しかし、すべてのマクロ、ツール バー、および定型句は、全文書対象のテンプレートから使用できます。
- 全文書対象のテンプレートのスタイルは文書とは関係ありません (ただし、そのスタイルが定型句に組み込まれている場合を除く)。
- Normal.dot、添付されているテンプレート、または文書に、その他の全文書対象のテンプレートにあるものと同じ名前のマクロまたは定型句がある場合、全文書対象のテンプレートのマクロまたは定型句は使用されません (AutoExec マクロは例外)。
- ツール バーやキーボードの変更は、序列で上位のものと競合しない限り適用されます。
- 複数の全文書対象のテンプレートがある場合に、[テンプレートとアドイン] ダイアログ ボックスに表示される順番でチェックされます (一覧の先頭に近いものが優先されます)。
- 最後に、"Word 自体をチェック" します。
- Word アプリケーションは、スタイル、定型句、書式設定されたオートコレクトの項目、ツール バーの設定を Normal.dot に保存しますが、起動時に Normal.dot ファイルを見つけられなかった場合に既定の設定で Normal.dot を再作成します。
- 厳密には Word アプリケーションにはマクロは含まれていませんが、Word のコマンド (Word のマクロ一覧にカテゴリとして表示される) は含まれています。これらのコマンドは、同じ名前を持つマクロによって妨害されることがあります。
テンプレートでスタイルを使用する理由は、以下のように、文書でスタイルを使用する理由と同じです。
- 一貫性 - スタイルを使用してテンプレートの書式を設定すると、同じ機能の文書は類似の見慣れた外観を持つようになり、読者が理解しやすくなります。各セクションに同じ書式が設定されるので、プロが作成したようなきれいな体裁の文書ができます。
- 変更のしやすさ - テンプレートで一貫したスタイルを使用すると、そのスタイルで書式設定されたすべてのテキストの特性を変更する場合に、所定のスタイルを 1 回更新するだけで済みます。
- 効率性 - スタイルを 1 回作成して、テンプレートを基にして作成した複数の文書内のセクションにそのスタイルを適用すると、各文書を個別に書式設定しなくても済みます。テンプレート内のスタイルを変更し、そのテンプレートを添付した複数の文書内のスタイルを簡単に更新できます。
- 目次 - スタイルを使用すると、目次を迅速に作成できます。
- 迅速な移動 - スタイルを使用すると、見出しマップ機能と垂直スクロール バーのヒントによって文書内の別のセクションにすばやく移動することができます。
- アウトライン表示での作業 - スタイルを使用すると、文書のメイン トピックのアウトラインを簡単に作成して構成することができます。
- 法的文書のアウトライン段落番号 - 段落番号をスタイルにリンクすると、法的文書で整合性のあるアウトラインの段落番号を作成し、更新できます。国内法、税法、合併吸収文書などの複雑な段落番号体系を持つ法的文書にも対応できます。スタイルに関連付けられた段落番号を使用しないと、Word 文書は簡単に台なしになります。これは、テンプレートにも当てはまることです。
- Word の効率性 - 大部分を手動で書式設定したファイルは、スタイルによって強制された書式を持つファイルよりも効率が悪くなります。[ファイル] メニューから開いて変換された文書など、手動で書式設定されたファイルは、ファイル サイズ (バイト) が大きくなることがあり、スクロール時に画面が効率よく表示されません。これは、Word がスタイル ベースのアプリケーションであるために起きることです。Word は、最初に基になるスタイルの属性を読み取り、次にブロードキャストして正反対の属性 (つまり、そのスタイルの上に手動で書式設定された属性) を探します。したがって、大部分が手動で書式設定された長い文書の場合、管理のための負荷がより大きくなるため、動作は遅くなります。さらに、スタイルを使用した場合とは反対に、印刷書式の処理も同様に負荷がかかる作業となります。Word の段落記号には、画面とプリンタのための書式設定コマンドを最大 30 種類まで組み込むことができます。これらすべてを、1 つのスタイル設定で置き換えることができます。
- HTML と XML - 完全に構造化されたスタイル付きのテンプレートは、HTML や XML への移行が非常にうまくいきます。
- 結論 - 文書テンプレートで直接的に書式設定を使用する方法は推奨できません。テンプレートを使用したユーザーと作成者自身を悩ませることになります。
注: Word 2000 以降では、スタイルはアルファベット順に一覧表示されています。Word 97 では、スタイルはドロップダウン リストに一覧表示されますが、アルファベット順ではありません。Word 97 では、[スタイル] ボックスの一覧に以下の順番でスタイルが表示されます。
- 見出しスタイル
- 標準スタイル
- ユーザー定義のスタイル (アルファベット順)
- 本文のスタイル
- リスト スタイル
- その他のすべてのスタイル (アルファベット順)
警告: 特に複数のユーザーが同じ文書で作業するような環境では、[文書のスタイルを自動的に更新する] チェック ボックス ([ツール] メニューの [テンプレートとアドイン] をクリックすると表示されます) をオンにしないことを推奨します。この機能では、スタイルが関連付けられた段落で書式を変更するたびにスタイルが更新されます。
図 6. [新規文書] ダイアログ ボックスの [ニュースレター] タブ
文書をテンプレートとして保存しようとすると、自動的にユーザー テンプレート フォルダに移動します。テンプレートをそのフォルダに保存すると、新しいファイルの [全般] タブで使用可能になります。[新規作成] ダイアログ ボックスに表示されるその他のタブは、ユーザー テンプレート フォルダまたはワークグループ テンプレート フォルダにあるフォルダです。カスタム タブを追加する場合は、まずフォルダを追加してから、そのフォルダにテンプレートを保存する必要があります。Word 2000 では、フォルダ内にテンプレートがない場合はタブが表示されません。
Word 97 では、これらのフォルダに付属のテンプレートが保存されています。Word 2000 では、組み込みのテンプレートは他の場所に保存されています。テンプレートを [Letters & Faxes] タブの下に表示する場合は、自分のユーザー テンプレート フォルダにそのタイトルを付けたフォルダを作成する必要があります。[ファイル] メニューの [名前を付けて保存] をクリックして、ファイルの種類としてテンプレートを選択します。テンプレートを保存する前に "Letters & Faxes" という名前の新しいフォルダを作成し (この名前を持つフォルダがない場合)、そのフォルダを開き、そこにテンプレートを保存します。
同様にワークグループ テンプレート フォルダ内に組織フォルダを作成して、ワークグループ テンプレートをそのフォルダに保存できます。これらのタブは、ワークグループ テンプレートの場所としてそのフォルダを設定しているすべてのユーザーの [新規作成] ダイアログ ボックスに表示されます。
ユーザー テンプレート フォルダまたはワークグループ テンプレート フォルダに作成したフォルダに、既に [新規作成] ダイアログ ボックスに表示されているタブと同じ名前を付けた場合、テンプレートはそれらの既存のタブの下に表示されます。個人的なテンプレート フォルダに同じ名前のフォルダを格納して、ワークグループ テンプレート フォルダをそのフォルダに保存することができます。
図 7. テンプレート フォルダの階層
テンプレート フォルダに認められているフォルダの階層の深さは 2 レベルです。つまり、テンプレート フォルダおよびその中に含まれているフォルダが 1 レベルです。上の図では 5 つのレベルが表示されています。第 2 レベルのフォルダにサブフォルダを配置することはできますが、Word はその構造を無視し、すべてのテンプレートを直接第 2 レベルのフォルダに保存したかのような動作をします。
テンプレート フォルダが図のように構造化されている場合、[ファイル] メニューで [新規作成] ダイアログ ボックスを表示すると、4 つのカスタム タブと 5 つのカスタム テンプレートがダイアログ ボックスに表示されます。[AA] タブをクリックしても、テンプレートは表示されません。
テンプレート フォルダが図のように構造化されている場合、[新規作成] ダイアログ ボックスを表示すると、3 つのカスタム タブと 5 つのカスタム テンプレートがダイアログ ボックスに表示されます。[AA] にはテンプレートが含まれていないので、[AA] のタブは表示されません。
すべて
[AB] タブをクリックすると、新規文書の開始のオプションとしてテンプレート 11、12、および 13 が表示されます。[AD] タブをクリックしても、フォルダは表示されません。表示されるテンプレートは 17、18、21、31、32、33、34、35、36 です。フォルダ AD 内のいずれかの場所 (サブフォルダを含む) にあるすべてのテンプレートが表示されます。
[全般] タブ (Word 97 以降)
[全般] タブには、ユーザー テンプレート フォルダ、ワークグループ テンプレート フォルダ、および "新しい文書" という名前のフォルダにあるすべてのテンプレートが表示されます。テンプレート フォルダを調べても、"Blank Document.dot" は見つかりません。これは、実際には Normal.dot であるからです。
[オプション] タブ (Word 97 以降)
ユーザー テンプレート フォルダとワークグループ テンプレート フォルダに、[新規作成] ダイアログ ボックスの 2 行のタブに収まる以上の数のフォルダがある場合、第 2 行の最後のタブは [オプション] になります。このタブをクリックすると、テンプレート フォルダにあるすべてのフォルダが表示されます。
フォルダでないその他のタブ (Word 2000 以降)
Word 2000 以降では、Word に添付されているテンプレートは [新規作成] ダイアログ ボックスに表示されますが、ユーザーがそれらのテンプレートを探しても見つかりません。これは、"故意に" そうなっています。これらのタブのいずれかと同じ名前を持つフォルダを作成していない限り、その名前を持つフォルダは存在しません。ユーザー テンプレート フォルダまたはワークグループ テンプレート フォルダにタブと同じ名前のフォルダを作成した場合に、そのタブに対応するフォルダがあることになります。そのフォルダに保存したテンプレートは、[新規作成] ダイアログ ボックスのタブの下に表示されます。ただし、Word に添付されているタブの下にあるテンプレートは、やはりフォルダの中にはありません。
まず、上の「ユーザー定義のタブを追加する方法」を読んで、テンプレートとテンプレートのフォルダの編成方法と動作を理解してください。
フォルダ (このフォルダを "フォルダ A" と呼びます) をテンプレート フォルダ (またはワークグループ テンプレート フォルダ) の外に移動します。フォルダ A の中のテンプレートを別のタブの下に表示したい場合、それらのテンプレートを別のタブのフォルダに移動するか、タブとして表示する必要がなくなったフォルダを、タブとして表示されている別のフォルダの中に格納します。フォルダ (フォルダ A) を、テンプレート フォルダ内の別のフォルダ (フォルダ B) に格納すると、フォルダ A は [ファイル] メニューの [新規作成] ダイアログ ボックスのタブとして表示されなくなりますが、フォルダ A 内のテンプレートはすべてフォルダ B のタブの下に表示されます。
タブがユーザー テンプレート フォルダまたはワークグループ テンプレート フォルダにあるフォルダによって作成されている場合は、Word 97/98 用の説明に従ってください。フォルダが組み込みのフォルダの場合は、[アプリケーションの追加と削除] を使用してテンプレートをアンインストールする必要があります。詳細については、サポート技術情報 (KB) の記事「 WD2000: General Questions and Answers About the Location of Word 2000 Templates」(英語) を参照してください。
- Word を終了します。
- [コントロール パネル] を開き、[アプリケーションの追加と削除] で使用している Microsoft Office のバージョンを選択します。
- [変更] ボタンをクリックします。
- [機能の追加/削除] をクリックして、[次へ] をクリックします。
- [Microsoft Word for Windows] の横のプラス記号 (+) をクリックして展開します。
- [ウィザードとテンプレート] の横のプラス記号 (+) をクリックして展開します。
- [社外文書] や [社内文書] などの多数のカテゴリが表示されます。これらのカテゴリは [新規作成] ダイアログ ボックスのタブに対応します。
- カテゴリ名のすぐ左にある下向き矢印をクリックします。
- [X インストールしない] をクリックします。これは、元に戻って再インストールしない限り、それらのテンプレートは使用できないことを意味します。
- 次に、ダイアログ ボックスの右下にある [今すぐ更新] ボタンをクリックします。
- タブを削除しても、一部または全部のテンプレートがまだ必要である場合は、カテゴリ (タブ) をアンインストールする前に、必要なテンプレートを複製する必要があります。テンプレートを複製するには、新しいテンプレートを作成して保存します。この操作を行うには、[新規作成] ダイアログ ボックスの [テンプレート作成] チェック ボックスをオンにして、テンプレートを別のフォルダ/タブに保存します。また、テンプレートは、ユーザー テンプレート フォルダ内にないだけで、ハード ディスク上には既に存在していることがあります。C:\Program Files\Microsoft Office\Templates\ で、"1033" という名前のフォルダ (英語版) を探してください。このフォルダもまたユーザー テンプレート フォルダではありません。このフォルダには、ほとんどすべての組み込みのテンプレートが保存されています。ユーザー テンプレート フォルダ (またはサブフォルダ) に保存したいテンプレートをコピーできます。
テンプレートを編集する前に、そのテンプレートの場所を知っておく必要があります。Windows の [スタート] ボタンをクリックし、[検索] をポイントまたはクリックして、指示に従います。Macintosh コンピュータの場合は、Finder を使用します。
[ファイル] メニューの [開く] を使用して、通常の文書を開くのと同様にテンプレートを開いて編集します。こつは、テンプレートが保存されている、正しいフォルダに移動することです。正しいフォルダに移動した後は、簡単にテンプレートを開くことができます。テンプレートを開いた場合にタイトル バーに表示される名前は、"文書 1" ではなく、テンプレートの名前であることに注意してください。テンプレートに移動する作業は難しいので、テンプレートを直接開いてもかまいません。
Microsoft Internet Explorer からテンプレートを開いて編集するには、テンプレートを右クリックし、表示されたショートカット メニューで [開く] をクリックします。テンプレートを単にダブルクリックした場合は、テンプレートを基にした新しい文書が開きます。
テンプレートが保存されていない別のコンピュータに文書を移動した場合、添付は解除されます。コンピュータ上の別のディレクトリにテンプレートを移動すると、添付が解除される可能性があります。テンプレートがサーバー上にあり、そのサーバーに別の名前を付けた場合、添付は解除されます。文書に添付されているテンプレートを変更するには、[ツール] メニューの [テンプレートとアドイン] をクリックします。
別のテンプレートを添付すると、この新しく添付されたテンプレートの定型句、マクロ、ツール バー、およびキーボードのユーザー設定にアクセスできます。新しく添付されたテンプレートのテキストにはアクセスできません。新しく添付されたテンプレートのスタイルにはアクセスできますが、添付されているテンプレートを変更したときに [テンプレートとアドイン] ダイアログ ボックスの [文書のスタイルを自動的に更新する] チェック ボックスをオンにしていなければ、新しいテンプレートを添付しても文書で既に使用されているスタイルは変更されません。また、余白などの文書のレイアウトも取得できません (ただし、スタイルをインポートした場合は、スタイルに含まれているインデントはインポートされます)。
新しいテンプレートのレイアウト機能やテキストが文書に必要な場合は、そのテンプレートを基に新しい文書を作成して、元の文書の内容をその文書にコピーするのが最良の方法です。コピー後、元の文書を閉じ、新しい文書に同じ名前を付けて保存します。新しい文書には、元の文書のスタイル定義ではなく、テンプレートのスタイル定義が使用されることに注意してください。
優れたテンプレートがある場合は、新しく作り直す必要はありません。希望どおりに設定したレターヘッドがあるのであれば、定型書簡のベースとしてそのテンプレートを使用しましょう。これを行うには、編集する場合のようにテンプレートを開き、変更を行わずに別の名前を付けて保存するのが最善の方法です。[名前を付けて保存] を実行すると、マクロとすべてのスタイルが新しいテンプレートに転送されます。
新しいテンプレートのスタイルの定義を変更した場合、そのスタイルは、他の文書で同じ名前のスタイルを使用する段落が果たす役目と同じ役目を、新しいテンプレートで果たす段落に引き続き適用されます。スタイルが新しいテンプレートで別の役目を果たす場合は、別の名前を付ける必要があります。また、元のテンプレートの既存のスタイルを基にするとよいでしょう。このようにすると、異なるテンプレートに基づいて作成された文書間で、より簡単にテキストをコピーできるようになります。
Word にはこの操作を行うための方法が組み込まれていないので、それほど簡単な操作ではありません。まず、全文書対象のテンプレートを作成する必要があります。スタイルや定型句などをテンプレート間でコピーする方法の詳細については、Word のバージョンに応じて、以下のサポート技術情報 (KB) の記事を参照してください。
326538「HOW TO: Copy Word AutoText Entries Between Computers」(英語)
196541「WD97: Copying Toolbar Does Not Copy Associated Macros」(英語)
文書間またはテンプレート間でスタイル、マクロ、およびツール バーをコピーできます。この操作を行う最も有効な方法は、構成内容変更を使用することです。構成内容変更は Word に組みまれたツールで、これを使用するとスタイル、定型句、ツール バー、およびマクロをすばやくコピーできます。構成内容変更には、次の 2 つの方法でアクセスできます。Word 97 と Word 2000 では、[書式] メニューの [スタイル] をクリックして、[構成内容変更] をクリックします。Word 2002 以降では、[ツール] メニューの [テンプレートとアドイン] をクリックして、[構成内容変更] をクリックします。
注: コピーするスタイル名が既にある場合は、それを置き換えるかどうかを確認するメッセージが表示されます。
[構成内容変更]を使用してスタイルをコピーする際、いずれかのスタイルが他のスタイルに基づいている場合や、他のスタイルがそのスタイルに従属する場合は、スタイルを 3 回コピーするのが最適であることがわかりました。この操作によって違いが生じる理由ははっきりしませんが、コピー ボタンを 3 回クリックすると、コピー先のテンプレートでそれらの関係が継続します。1 回だけコピーした場合は、関係は継続せず、スタイルには標準スタイルが従属します。
マクロは、ユーザーが記録したり、VBA エディタでコードを追加したり、別のマクロでテンプレートや文書に配置したりすることによって、最終的にテンプレートや文書に保存されます。Word がマクロを検出したときに表示されるセキュリティ警告のために、多くの Word ユーザーはマクロに対して非常に慎重になっています。マクロは、望みどおりに Word を動作させるための最良のツールの 1 つなので、これは残念なことです。
しかし、これは完全に信頼の問題です。とてもおいしく、必要な栄養を提供してくれる 1 杯のスープがあるとします。しかし、そのスープには毒や病気が潜んでいることもあります。このため、セキュリティ レベルを設定できるすべてのバージョンの Word (Word 97 以降) で、マクロ ウイルスのセキュリティを [中] 以上に設定することを推奨します。
文書内でさまざまな機能を実行するためにユーザーが作成するユーティリティタイプのマクロのほかに、条件やイベントの発生に基づいて自動で実行可能になる組み込みのマクロもあります。
テンプレートや文書に組み込むことのできる、ツール バーやボタンで呼び出さずに、ユーザーに通知することなく実行されるマクロがあります。"自動" マクロと呼ばれるこれらのマクロには、以下のようなものがあります。
- AutoOpen - 文書やテンプレートを開いたときに実行されます。
- AutoClose - 文書やテンプレートを閉じたときに実行されます。
- AutoExec - Word が起動したときや、テンプレートが全文書対象のテンプレートとして追加されたときに実行されます。
- AutoExit - Word を閉じた (終了した) ときや、テンプレートが全文書対象のテンプレートとしてアンロードされたときに実行されます。
- AutoNew - 新しい文書が作成されたときに実行されます。
ヒント: Shift キーを押しながら、文書を開く (閉じる)/Word を起動する (終了する) と、これらのマクロは実行されません。
AutoOpen マクロは、既存の文書またはテンプレートを開いたときに実行されます。新しい文書を作成したときは実行されません。AutoOpen マクロを Normal.dot テンプレートに保存すると、文書またはテンプレートを開くたびにこのマクロが実行されます (Normal.dot を開いたときも実行されます)。
AutoOpen マクロをユーザー自身のテンプレートに保存すると、そのテンプレートを基にした文書を開くたびにそのマクロが実行されます (テンプレートが添付されている限り)。テンプレートを開いたときも実行されます。これは、Normal.dot 内の AutoOpen マクロの代わりに実行されます。
AutoOpen マクロを全文書対象のテンプレートに保存すると、テンプレートを開いたときだけこのマクロが実行されます。以下のマクロを文書のテンプレートに保存すると、その文書を開いたときにグローバル マクロを実行できます。
Sub AutoOpen()
Application.Run.MacroName:="myGlobalMacro"
End Sub
文書の [開く] イベントを使用して、文書を開いたときに全文書対象のテンプレート内のマクロを実行することもできます。
AutoClose マクロは、文書またはテンプレートを閉じたときに実行される点を除き、AutoOpen マクロと同じ動作をします。
AutoExec マクロは、Normal.dot やその他の全文書対象のテンプレート専用です。マクロを含んでいるテンプレートが読み込まれたときに実行されます。Normal.dot と自動的に読み込まれるグローバル マクロの場合、Word の起動時に実行されます。その他の全文書対象のテンプレートの場合、テンプレートがアドインとして読み込まれたときに実行されます。AutoExec マクロは、Normal.dot、global.dot、global2.dot などに保存され、それらすべてが実行されます。複数のアクティブな場所に同じ名前を持つマクロがある場合、通常は、文書に最も近いマクロだけが実行されます。AutoOpen マクロの場合、Normal.dot、添付されているテンプレート、および文書に AutoOpen マクロがある場合、文書内のマクロだけが実行されます。以下は、Web ツール バーを無効にする AutoExec マクロの例です。
Sub AutoExec()
Application.CommandBars("Web").Enabled = False
End Sub
AutoExit マクロは、テンプレートがアンロードされるときに実行される点を除き、AutoExec マクロと同じ動作をします。Normal.dot の場合、Word が閉じられるときに実行されます。全文書対象のテンプレートの場合、Word が閉じられるときか、全文書対象のテンプレートが [テンプレートとアドイン] を使用してアンロードされるときに実行されます。
AutoNew マクロは、文書や全文書対象のテンプレートでは役に立たず、文書テンプレートと Normal.dot でのみ有用です。Normal.dot. 内の AutoNew マクロは、新しい文書が作成されるときに実行されます。文書テンプレート内の AutoNew マクロは、テンプレートを基にして文書が作成されるときに実行されます。Normal.dot と文書テンプレートの両方に AutoNew マクロがある場合は、文書テンプレート内のマクロが実行され、Normal.dot 内のマクロは実行されません。
以下のサンプル マクロを使用して、マクロが呼び出されるタイミングをテストすることができます。
Sub AutoOpen()
' テスト マクロ
MsgBox "The AutoOpen macro in Normal.dot is running"
End Sub
このマクロは、ただ記録するだけではなく、VBA エディタで作成する必要があることに注意してください。テストするマクロを記録する場合は、何らかのテキストを入力して一時停止し、そのテキストを削除します。
テンプレートを他のユーザーと共有する場合や、単にテンプレートを使用して多数の文書を作成する場合でも、テンプレートを慎重に計画して構築してください。別の文書処理プログラム (かなり以前のバージョンの Word も含む) から変換された文書からテンプレートを作成することは避けてください。機能を対応させて複雑な文書構造をプログラム間で変換する方法はないので、そのような変換を行うと文書が破壊される傾向にあります。Word では、現バージョンの Word で作成された文書であっても、その文書の中に自動的に番号付けされた段落がある場合などに問題が起きることがあります。
テンプレートの基本概念は、新しい文書の作成を支援することです。テンプレートに多数のエラーがあると、それらのエラーは無限に複製されます。それは、ユーザーが必要としているものではなく、まして設定したい手本でもありません。テキストを共有する場合は、テキストを定型句として共有します。
変換された文書のテキストをクリーンアップするには、HTML 形式 (テキスト形式でもよい) に保存して、そのファイルを再度開き、DOC 文書ファイルとしてもう一度保存します。その後、この新しい文書をテンプレートとして保存できます。
以下に、テンプレートの使用時に生じる可能性のある代表的な問題をいくつか示します。
- スタイルの定義と使用に失敗する。これは、Word の自動段落番号設定を使用する番号付きの段落がある場合に特に問題になります。
- テンプレートが競合する。複数のアクティブなテンプレートでマクロ、スタイル、または定型句に同じ名前を使用しています。このように設定する必要がある場合もありますが、通常はテンプレートどうしに優先を争わせる必要はありません。
- 複数の Normal.dot のコピーがある。1 つのコンピュータに複数のユーザーがいて、各ユーザー プロファイルをアクティブにしている場合を除き、Normal.dot は 1 つのコンピュータに 1 つしかないようにします。コンピュータ上に複数のバージョンの Word がある場合は、複数の Normal.dot ファイルが必要です。ユーザー プロファイルをアクティブにしている場合は、ユーザーごとに 1 つの Normal.dot のバージョンがなければなりません。
この記事では、テンプレートについて詳細に説明しました。テンプレートは、テキスト、スタイル、マクロ、ショートカット キー、ユーザー設定のツール バー、定型句をアプリケーションで使用可能にする手段です。テンプレートの種類 (ワークグループ テンプレート、全文書対象のテンプレート、ユーザー テンプレート) を選択することで、機能を表示するタイミングと場所を制御できます。