文献目録の操作

Word オブジェクト モデルには、文献目録の作成を自動化するためのオブジェクトが用意されています。 次の表に、Word の文献目録機能のメイン オブジェクトを一覧表示しています。 Word オブジェクト モデルでこれらのオブジェクトと追加のプロパティとメソッドを使用して、ソースリストにソースを追加し、ドキュメント内のソースを引用し、ソースを管理します。 資料文献を管理するための Word モデルのオブジェクトを次の表に示します。

オブジェクト 説明
Source 書籍、雑誌の記事、インタビューなどの個別の資料文献です。
Sources Source オブジェクトのコレクション。
Bibliography 文書で引用されている資料文献のリスト (現在のリスト) またはアプリケーションで使用できる資料文献のリスト (マスター リスト) です。

ソース XML について

資料文献は、XML 文字列を使用してプログラムで資料文献のリストに追加します。 追加する資料文献の種類に応じて、必要な XML 構造が異なります。 ある種類の資料文献の XML 構造を確認するために、同じ種類の資料文献を手動で追加し、返される XML を表示できます。 これを実行するには、次の手順に従います。

  1. [参考資料] リボンで、[資料文献の管理] をクリックします。

  2. [資料文献の管理] ダイアログ ボックスで、[作成] をクリックします。

  3. [資料文献の作成] ダイアログ ボックスで、作成する資料文献の種類を選択します。 この例では、[書籍] を選択します。

  4. 次の表に示すように、資料文献のフィールドに入力します。

    フィールド
    著者 Andrew Dixon
    タイトル Stylish Bibliographies
    2006
    市区町村 Chicago
    発行元 Adventure Works Press
    タグ名 And01
  5. [ すべての文献目録フィールドを表示] をオンにして、追加のフィールドに情報を表示して追加します。

  6. [OK] をクリックします。

  7. [資料文献の管理] ダイアログ ボックスを閉じます。

  8. Microsoft Visual Basic Editor を起動します (Alt + F11 キー)。

  9. [イミディエイト] ウィンドウを表示します (Ctrl + G キー)。

  10. Paste and run the following code. Sub GetBibliographyXML() Dim strXml As String Dim objSource As Source Set objSource = Application.Bibliography.Sources( _ Application.Bibliography.Sources.Count) Debug.Print objSource.XML End Sub

前の手順を実行すると、[イミディエイト] ウィンドウには次の XML コードが表示されます。

<b:Source xmlns:b="http://schemas.microsoft.com/office/word/2004/10/bibliography"> 
    <b:Tag>And01</b:Tag> 
    <b:SourceType>Book</b:SourceType> 
    <b:Guid>{6D86D06C-9022-4932-8D4C-84C2B0843381}</b:Guid> 
    <b:LCID>0</b:LCID> 
    <b:Author> 
        <b:Author> 
            <b:NameList> 
                <b:Person> 
                    <b:Last>Dixon</b:Last> 
                    <b:First>Andrew</b:First> 
                </b:Person> 
            </b:NameList> 
        </b:Author> 
    </b:Author> 
    <b:Title>Stylish Bibliographies</b:Title> 
    <b:Year>2006</b:Year> 
    <b:City>Chicago</b:City> 
    <b:Publisher>Adventure Works Press</b:Publisher> 
</b:Source>

Guid 要素と LCID 要素は省略可能ですが、必要に応じてこの要素に値を指定できます。 Guid 要素には、Word オブジェクト モデルの外部で、プログラムで生成できる有効な GUID を指定する必要があります (ID をプログラムで生成する方法については、MSDN についての Visual Studio のマニュアルまたは Windows のマニュアルを参照してください)。 (プログラムによる ID の生成については、Visual Studio のドキュメントまたは MSDN の Windows ドキュメントを参照してください)。Word では、ユーザーがソースを追加または編集するときに GUID が生成されます。 XML に GUID を追加せず、ユーザーがソースを編集すると、GUID が生成されます。 また、マスター リストと現在のリストとの間で一貫性を維持するために、古くなった資料文献を更新するかどうかをユーザーに確認できます。

LCID は資料文献の言語を指定します (有効な言語識別値については MSDN を参照してください)。 Word では、LCID を使用して引用された資料文献を文書の文献目録に表示する方法を決定します。 たとえば、それぞれフランス語、英語、および日本語で書かれた資料文献があるとします。 LCID によって、名前の表示方法 (たとえば、英語の場合、"姓, 名")、使用する句読点 (たとえば、ある言語ではコンマを使用し、別の言語ではセミコロンを使用)、使用する文字列 (たとえば、"et al" を使用するのか、または別のローカライズされた形式を使用するのか) が決まります。

省略可能な要素を削除した後、次の XML 構造体のような構造を使用できます。 ([ ソースの作成 ] ダイアログ ボックスに対応する編集可能なフィールドがないため、必要な要素を決定できます。1 つ以上の必須要素を省略すると、実行時エラーが発生します)。

<b:Source xmlns:b="http://schemas.microsoft.com/office/word/2004/10/bibliography"> 
    <b:Tag>And01</b:Tag> 
    <b:SourceType></b:SourceType> 
    <b:Author> 
        <b:Author> 
            <b:NameList> 
                <b:Person> 
                    <b:Last></b:Last> 
                    <b:First></b:First> 
                </b:Person> 
            </b:NameList> 
        </b:Author> 
    </b:Author> 
    <b:Title></b:Title> 
    <b:Year></b:Year> 
    <b:City></b:City> 
    <b:Publisher></b:Publisher> 
</b:Source>

これで書籍用のソース XML の基本構造が完成したので、資料文献のマスター リストおよび現在のリストに書籍の資料文献を追加できます。 [すべての文献情報フィールドを表示する] チェック ボックスをオンにすると、追加の要素を表示できます。

注:

または、 にある "sources.xml" という名前の文献目録ソース ファイルから XML を C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography取得することもできます。 このファイルには、ユーザーの資料文献のマスター リストが保存されています。

マスター ソース リストと現在のソース リストにソースを追加する

マスター ソース リストへのソースの追加は、現在のソース リストへのソースの追加と似ていますが、異なるメイン オブジェクトから Sources コレクションにアクセスする場合は例外です。 ソースをマスター ソース リストに追加するには、Application オブジェクトの文献目録プロパティから Sources コレクションにアクセスします。 現在のソース リストにソースを追加するには、Document オブジェクトの文献目録プロパティから Sources コレクションにアクセスします。

次の例は、前に確認した基本構造を使用して、資料文献のマスター リストに別の書籍を追加します。

Sub AddBibSource() 
 
    Dim strXml As String 
     
    strXml = "<b:Source xmlns:b=""http://schemas.microsoft.com/" & _ 
        "office/word/2004/10/bibliography""><b:Tag>Mor01</b:Tag>" & _ 
        "<b:SourceType>Book</b:SourceType><b:Author><b:Author>" & _ 
        "<b:NameList><b:Person><b:Last>Hezi</b:Last>" & _ 
        "<b:First>Mor</b:First></b:Person></b:NameList></b:Author>" & _ 
        "</b:Author><b:Title>The New Office</b:Title>" & _ 
        "<b:Year>2006</b:Year><b:City>Seattle</b:City>" & _ 
        "<b:Publisher>Adventure Works Press</b:Publisher>" & _ 
        "</b:Source>" 
     
    Application.Bibliography.Sources.Add strXml 
 
End Sub

Application.Bibliography.Sources.Add strXml を に変更できます。 ActiveDocument.Bibliography.Sources.Add strXml

プログラムで資料文献のマスター リストに資料文献を挿入しても、その資料文献は資料文献の現在のリストに自動的に追加されません。 ただし、文書に引用文献を追加するには、その資料文献が現在のリストに追加されている必要があります。 [資料文献の管理] ダイアログ ボックスを使用して、1 つ以上の資料文献をマスター リストから現在のリストに手動でコピーするか、プログラムによって 1 つ以上の資料文献をマスター リストから現在のリストにコピーできます。 次の例は、マスター リストのすべての資料文献を現在のリストにコピーします。 現在のリストに資料文献を追加したら、その資料文献を引用文献として文書に挿入できます。

Sub CopyToCurrentList() 
    Dim objSource As Source 
    Dim strXml As String 
     
    On Error Resume Next 
     
    For Each objSource In Application.Bibliography.Sources 
        strXml = objSource.XML 
        ActiveDocument.Bibliography.Sources.Add strXml 
    Next 
End Sub

注:

Tag プロパティの値は、現在のリストにある資料文献の間で一意である必要があります。 このため、マスター リストの資料文献のうち、現在のリストに競合するタグ値がある資料文献をコードでスキップするために、 On Error Resume Next 行が必要になります。 マスター リストから現在のリストに資料文献をコピーできない場合にインスタンスをキャプチャするように、このコードを変更できます。

ソース リストを共有する

資料文献のリストは、組織内の別のユーザーと共有することができます。 マスター リストにソースを追加すると、 にあるファイル名 "sources.xml" C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography\sources.xmlに追加されます。 このファイルを共有するには、ファイルを別のユーザーに渡し、そのユーザーが [資料文献の管理] ダイアログ ボックスから手動で、またはコードを使用してプログラムでそのファイルを読み込みます。

注:

ユーザーがソース ファイルを読み込むと、これは 1 回限りの出現であり、既存のマスター リストや現在のリストは変更されません。 [資料文献の管理] ダイアログ ボックスを使用して、共有する資料文献ファイルにある項目を現在のリストに手動で追加できます。

共有する資料文献をプログラムで読み込むこともできます。 次の例は、ローカル コンピューターの共有に格納された共有する資料文献ファイルを読み込む方法を示しています。

Sub LoadSharedSource() 
    Application.LoadMasterList "\\server\public\sources.xml" 
End Sub

注:

source.xml 資料文献ファイルによって共有できるのは、マスター リストにある資料文献だけです。 現在のリストにある資料文献は、文書のデータ ストアに格納されています。 文書を保存して、WinZip などの ファイル圧縮アプリケーションで DOCX ファイルを開くことによって、このファイルにアクセスできます。 パスが "customXml" で、ファイル名が "item1.xml" (またはこれに類似したファイル名) の資料文献ファイルを見つけることができます。 文書内の資料文献を他のユーザーと共有する必要がある場合、前述のマスター リストの資料文献ファイルを共有する方法と同じ方法で、このファイルを共有できます。

マスター ソースリストを並べ替える

[ ソース マネージャー ] ダイアログ ボックスでは、 BibliographySort プロパティを使用して並べ替え順序を設定できます。 BibliographySort プロパティには、"Author"、"Tag"、"Title"、"Year" のいずれかの 文字列型 (String) の値を指定できます。 このオブジェクトによって、文書の文献目録にある資料文献の並べ替えは変更されません。 次の例は、資料文献をタイトル別に並べ替えます。

Sub SortBibliography() 
    Options.BibliographySort = "Title" 
End Sub

引用文献を挿入する

Fields コレクションの Add メソッドを使用して、文献目録の引用を挿入できます。 次の例は、前に追加した資料文献を引用文献としてカーソル位置に挿入します。 フィールドのテキストは、タグ値、つまり Tag 要素の値 (この場合は、"Mor01") です (XML 文字列 "Mor01" については、前の AddBibSource サブルーチンで使用した XML コードを参照してください)。 (XML 文字列 "b:Tag>Mor01</b:Tag>"< については、前に示した AddBibSource サブルーチンの XML コードを参照してください)。Tag 要素の値は、Source オブジェクトの Tag プロパティにも対応します。

Sub InsertBibCitation() 
    Selection.Fields.Add Selection.Range, _ 
        wdFieldCitation, "Mor01" 
End Sub

文献目録のスタイルを適用する

文書に文献目録を挿入した後で、その文献目録のスタイルを設定できます。 複数の異なる文献目録のスタイルが用意されています。 文献目録スタイルは、 BibliographyStyle プロパティを使用して設定できます。 このプロパティには、次のいずれかの 文字列型 (String) の値を使用できます。

  • APA

  • Chicago

  • GB7714

  • GOST - Name Sort

  • GOST - Title Sort

  • ISO 690 - First Element Date

  • ISO 690 - Numerical Reference

  • MLA

  • SISTO2

  • Turabian

注:

これらの値は Word に含まれますが、新しい文献目録のスタイルが定義されるため、将来の任意の時点で新しい値が追加される可能性があります。

次の例は、既定の文献目録のスタイルを MLA スタイルに設定します。

Sub SetBibliographyStyle() 
    Options.BibliographyStyle = "MLA" 
End Sub

注:

XML で独自の文献目録スタイルを定義することもできます。 ディレクトリ C:\Program Files\Microsoft Office\Office15\1033\Bibliography\Style には、コンピューター上のすべてのドキュメント スタイルに対して 1 つの XSL ファイルが含まれています。 このファイルをサンプルとして開き、ユーザー独自の XSLT を作成する方法を確認できます。 ユーザー設定の文献目録スタイルの XSL ファイルをコンピューター上の上記のフォルダーに配置することによって、このファイルを共有できます。

文献目録を挿入する

引用文献と同様に、文献目録はフィールドを使用します。 文献目録を挿入するには、フィールド タイプに指定された wdFieldBibliography の定数を使用してフィールドを挿入する必要があります。 次のコードは、作業中の文書のカーソル位置に文献目録を挿入します。 この例では、カーソルが文書の末尾または新しいページに置かれていることを想定しています。

Sub InsertBibliography() 
    Selection.Fields.Add Selection.Range, _ 
        wdFieldBibliography 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。