例文番号を管理するTips

<注>
1.ここに出てくるワードのVBAの詳細は「Word Hacks―プロが教える文書活用テクニック」などに書かれています。この本ではワードでの正規表現の使い方なども取り上げられかなりレベルの高い記述があり参考になります。

2.Office 2007になってインターフェイスがかなり変わってしまいました。個人的には2003のほうが使いやすかったのですが、進化しているところもたくさんあるみたいです。詳しく知りたい方は「よくわかるMicrosoft Office Word2007 (基礎)」などをご覧になってみてください。



・例文の番号を自動的に振る・更新する


簡易版はこちら


論文を書いていると後から後から例文が増えてしまい、いちいち番号をずらさなくてはなりません。さらに本文中に例文に言及している番号がずれてしまうのでもう大変。それが自動的に動いてくれたら…。それを実現してくれるのがマクロ(=プログラム)です。

これはそれなりに高度なことですが、一度設定してしまえば楽です。億劫がらずにやってみましょう。

まず、この設定の威力を見ていただくために、どんなことができるか見ていただきましょう。下の画面が僕のワードの画面です。


右上に例文番号というボタンがあります。これを押すと例文番号が挿入されます。有り難いことにこの番号は自動的に連番になります。つまり、(2)の次は(3)、(3)の次は(4)と何も考えずに挿入していえばよいのです。


で、この自動番号のすごいところはこれだけではありません。例えば、(1)と(2)の間に新しい例文を入れた場合、(2)は(3)に直す必要がありますが、これを自動でやってくれるのです。


(1)と(2)の間に例文を挿入。その例文の前で先ほどの「例文番号」というボタンを押す

すると、このように番号が自動更新される

これができればかなり論文作成が楽になると思いませんか。


原理

原理を説明します。そもそもワードには図表番号を自動で更新する機能がついています。挿入→参照→図表番号がそれです。これを使えば実は図表番号は自動更新できます。お試しください。で、これを例文番号に応用するというのがここでの趣旨です。

この機能の仕組みは「ラベル(図・表など)+フィールド(数字)」という形になっていて、ラベルの種類にしたがってフィールドが自動で更新されるというものです。つまり、図3まであれば、次は図4を、表2と表3の間に表を入れたら、表3を4にというように自動で更新され、ナンバリングはラベルごとに排他的ですので図と表の番号が混同されることはありません。

例文に応用するためには、まずラベルを設定しないといけません。例文ですから大抵は括弧"("ですね。で、それを作れば、実はマクロを使わなくても自動更新が実現されるのです。しかし問題点はいちいち挿入参照→…のルートを辿らないといけないこと、また太字になること、さらに閉じ括弧がないことです。これらの問題点を解決したのが以下のマクロです。


設定の仕方

①ラベルを設定する
例文用のラベルを設定しましょう。
挿入→参照→図表番号→ラベル名

で、ここに半角の"("を入れます。

②マクロの設定
マクロを使うにはセキュリティレベルを変更する必要があります。
ツール→マクロ→セキュリティ→中を選択


ここでワードを再起動します。

③マクロを作る
ツール→マクロ→visual basic editor 左上のプロジェクトウィンドウのNormal→標準モジュールを選択。で挿入→標準モジュール



それで挿入したmodule1ないしはmodule2に以下のマクロ貼り付けてください。

※sub からend subまで

Sub exNum()


Selection.InsertCaption Label:="(", _
TitleAutoText:="InsertCaption1", _
Title:="", Position:=wdCaptionPositionBelow
Selection.TypeText Text:=")"
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeBackspace
Selection.EndKey Unit:=wdLine
Selection.Style = ActiveDocument.Styles(wdStyleHeading1).Font.Bold = False
End Sub

こんな感じになります。


で、これをツールバーに登録しましょう。

ツール→ユーザー設定→コマンド→マクロ→exNumを選択してワードのツールバーにドラッグ&ドロップ(基本的にどこでもよいです。だめなところでは×がでます。)



ほんで、その画面のまま(ユーザー設定画面を閉じずに)、右クリック→名前のところを例文番号などにしておくとよいでしょう。


これで完成です。一番初めにみたようにワードの画面に例文番号というボタンが表示されるはずです。挿入したいときは このボタンを押してください。

・例文番号をリンクさせる

この延長線上でできる大技が、本文中に言及されている例文番号も連動させるということです。この技がないと、上の技術もいまいちうまくいきてきません。例えば、例文中に「例(2)は・・・」とあった場合、その例(2)がその前に例文が追加されるなどで(3)になったりすると変える必要が出てきてかえって面倒だからです。

ここでは、本文中の番号と例文番号をリンクする技を紹介します。
まず、以下のコードを上記同様、Normal.docにいれてください。


Sub refnumber()
Dim refnum$
refnum$ = InputBox("挿入したい例文番号を半角で入力してください", _
"例文番号へのクロスレファレンス")
If refnum$ <> "" Then
Selection.InsertCrossReference _
ReferenceType:="(", _
ReferenceKind:=wdOnlyLabelAndNumber, _
ReferenceItem:=refnum$
Selection.TypeText Text:=")"
End If
End Sub


そして、ユーザー設定からツールバーに登録しておくとよいでしょう。冒頭の図で「例文参照」というボタンがこれに該当します。

本文中、例に言及する場面になったらそのボタンを押します(またはマクロを実行)。すると以下のようなボックスが現れます。



ここに半角で数字を入力し、エンターキーを押すと例文が入力されます(※例文番号が存在しない場合はエラーになります)。

これでオーケーです。もし、このリンク先の番号の前に新たな例文がいれられても自動で更新されます。更新されない場合は、対象箇所(全体でもよい)を選択し、右クリック→フィールドの更新をしてください。



※ここの記述はhttp://www.gges.org/ueyama/works/word/word-3.shtmlを参考にさせていただきました。



・例文自動番号簡易版


ポイント:☆フィールドを使う☆

挿入→フィールド→番号



この後、1,2,3など好きな書式を選んでください。

すると番号が挿入されるので、それをコピー&ペーストし、複製して使います。この挿入された部分はフィールドといって、通し番号が入る仕組みになっています。



例えば、()の中にコピーしていけば、自動で更新される例文番号のフィールドになります。(※ただしこの方法だと相互参照や複数の系列(e.g.例文A群とB群、それぞれ異なる通し番号をつけるときなど)を並べて使うことはできません。)



このページをはてなブックマークに追加
ページのトップへ戻る