Word の文献リストのスタイルを自作する

# はじめに

現在、おそらく文章を書くほとんどの方が Microsoft Word (以下、単に Word と記載)を使っています。
大学の卒業論文や学術論文やをWordを使って書く方も多いと思います。その中で、このような事態に陥ったことがある方もいるのではないでしょうか。

> 😭「**参考文献リストのフォーマットが 大学/ジャーナル で指定されたものと違う……。
仕方ないから、提出直前にフォーマットだけ手で修正しよう……**」

実は、一度 Word で参考文献リストのスタイルを自作してしまえば、わざわざ手で修正する必要がなくなります。この記事では、そんな文献リストのスタイルの作り方を説明します。

# Word と文献リストのスタイルについての現状

2023年11月29日現在、Word では以下のジャーナルの表記方法がサポートされています。

- APA
- Chicago
- GB7714
- GOST
- Harvard
- IEEE
- ISO 690
- MLA
- SIST02
- Turabian

Microsoft の公式ページによると、これらの表記方法と異なるものを自作できるそうです。

https://learn.microsoft.com/ja-jp/office/vba/word/concepts/objects-properties-methods/create-custom-bibliography-styles

しかし、このサイトは全く役に立ちません。
ハンズオンで扱われているコードが古いのか間違っているのか、書かれている通りに書いてもスタイルが適用されないからです。
そこで本記事では、公式ドキュメントに代わって文献リストのスタイルの自作方法を記載することにします。

# 対象となる読者

- コードの気持ちが分かる人
コードを眺めて、どこが対応しているのかを把握しなくてはならないので、完全なプログラミング初心者だと難しいかもしれません。
- 文献管理ツール (Mendeley, RefWorks, EndNote など) を利用していない人
これらの文献管理ツールを利用している方は、文献管理ツールの取扱説明書をご覧ください。

# 環境

- Windows 11
- Microsoft® Word for Microsoft 365 MSO (バージョン 2302 ビルド 16.0.16130.20806) 64 ビット 

本記事の内容は、2023年11月29日時点で正常に動作することを確認しています。

# 本文

公式ドキュメントが機能しておらず、まともなデバッグ環境を整えることも出来ない状況で、文献スタイルを一から作るのは困難です。

そこで、デフォルトで用意されているスタイルファイルを複製し、一部を変更するという手法を取ります。

## 1. 作成する文献目録スタイルが定義されている場所を探す

文献目録のスタイルは、パソコンの決まった場所にまとめて保存されています。
まずは、そのスタイルが入っているフォルダ (便宜上、**Style フォルダ** と名付けます) を探します。

結論から言ってしまうと、Style フォルダは以下のパスにあります。
```PATH
%AppData%\Microsoft\Bibliography\Style
```

AppData は隠しフォルダで、普段からパソコンに慣れていないと探すのが難しいと思いますので、簡単に探す方法を記載します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610894/ca809a0f-9471-ea8e-652b-07d57906773e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610894/19218ff6-3ed5-f207-19c9-b4cbd39dc9f5.png)

:::note warn
Sources.xml ファイルは、Word で最初の文献目録ソースを作成するまで存在しません。
:::

これで **Style フォルダ** を探すことが出来ました。
新しくエクスプローラーを立ち上げ、Style フォルダまで移動します。上記操作で出てきたウィンドウは閉じて大丈夫です。

## 2. デフォルトのスタイルファイルを一つ複製する

Style フォルダを開くと、デフォルトのスタイルを定義するファイルがずらりと並んでいます。
ここから、自分の論文に最も近いスタイルのものを複製します (スタイルが大きく異なるものを選んでしまうと、修正する箇所が多くなってしまいます)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610894/122a01e4-af06-451b-9624-b89d5bdfcda5.png)

## 3. スタイルファイルを一部修正する
スタイルファイルを開きます。Visual Studio Code などのエディターを普段使っている方はそちらで開くと見やすいと思います。そうでない方はメモ帳でも構いません。
今回私が作成した `MasterThesis.xsl` の元となった `IEEE2006OfficeOnline.xsl` は、8000行を超えているファイルです。しかし、ここに書かれたコードすべてがスタイリングのためのものというわけではありません。スタイルを定義している部分のみに注目することで、比較的楽に修正することができます。

### 3-0. ファイルの構成を理解する

`IEEE2006OfficeOnline.xsl` のファイルの構成は、概ね以下の順番で書いてあります。

1. <font color="red">**スタイルの表示名を定義**</font> (詳しくは後述します)
1. 文献のタイプごとに要求する情報を定義
    > 例えば、書籍なら以下の情報を要求しています
        - Author/Author/NameList
        - Year
        - Title
        - City
        - Publisher
1. 言語や環境による表記ゆれへの対応
    > 日本語の環境であれば、"Publisher" を「出版社」と表記、など
1. <font color="red">**文献のタイプに依らず、使いまわす共通部分を定義**</font>
1. <font color="red">**文献のタイプごとに、論文最後に記載する文献目録のスタイルを定義**</font>
1. <font color="red">**論文中の埋め込み方を定義**</font>


上記のうち、直接的にスタイルに関与するのは 4, 5, 6 の部分のみです。
ただ、1. もやっておかないと不便なので、変更します。

### 3-1. スタイルの表示名を変更する

スタイルの表示名とは、Word からスタイルを選ぶ際にプルダウンに出てくる名前のことです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610894/40ff3b38-0779-e6ca-5c4f-0d18d0887542.png)

これを修正します。

```diff_xml: MasterThesis.xsl
        <xsl:when test="b:StyleNameLocalized">
-        <xsl:choose>
-          <xsl:when test="b:StyleNameLocalized/b:Lcid='1033'">
-            <xsl:text>IEEE</xsl:text>
-          </xsl:when>
-          <xsl:when test="b:StyleNameLocalized/b:Lcid='1025'">
-            <xsl:text>IEEE</xsl:text>
-          </xsl:when>
-          
-          <!-- 
-               ……
-               長いので省略
-               ……
-          -->
-          
-          <xsl:when test="b:StyleNameLocalized/b:Lcid='1060'">
-            <xsl:text>Način citiranja IEEE</xsl:text>
-          </xsl:when>
-        </xsl:choose>
+		 <xsl:text>MasterThesis</xsl:text>
		</xsl:when>
```

言語ごとに表示名を変えることも出来るようなのですが、今回は自分が分かれば良いので、表示名は言語に依らず固定 (上記例だと `MasterThesis`) でいいでしょう。

### 3-2. スタイルを定義している部分を修正する。

スタイルを修正したいときは、そのスタイルを定義している部分注意深く探し出す必要があります。
今回は、論文中に埋め込む際のスタイルを変更をしてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610894/b8dceeb3-eab1-af55-9552-a2582c708091.png)

```diff_xml: MasterThesis.xsl
+  <sup>
    <xsl:if test="b:FirstAuthor">
     <xsl:call-template name ="templ_prop_SecondaryOpen"/>
    </xsl:if>
    <xsl:call-template name="RefOrder"/>
     <xsl:if test="count(b:Pages)>0">
      <xsl:call-template name="displayPageOrPages">
       <xsl:with-param name="pages" select ="$pages"/>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="b:LastAuthor">
      <xsl:call-template name="templ_prop_SecondaryClose"/>
     </xsl:if>
     <xsl:if test="not(b:LastAuthor)">
	  <xsl:call-template name="templ_prop_ListSeparator"/>
	   <xsl:call-template name ="templ_prop_Space"/>
	 </xsl:if>
+   </sup>
```

`<sup></sup>` で囲うと、上付き文字になります。

その他変えたい部分があれば、該当箇所のコードを修正します。

コードの変更が完了したら、Word ファイルを立ち上げ直して、動作を確認してください。

# おわりに

公式ドキュメント、しっかりしてくれよ！