各UCSごとに、一意なユースケース番号(例: UC00001, UC0002, ...)を付与するんですけど、これを自動的にやる方法はありませんか。
WordやWriterには、図表番号を自動で更新してくれる仕組みがありますけど、これのように、文書に現れる順番に希望のフォーマットでナンバリングしてくれ、UCSの追加、削除、順番変更に伴って自動的に番号を更新してくれる、さらに参照ができれば言うこと無し―――そんなことができないものでしょうか。
MS WordとOOo Writerのそれぞれの実現方法を教えてください。どちらか一方でも結構です。
ちなみに私のWordはバージョンが "Word2000" でして、これで実現できればとても助かります。
変更箇所特定のやり方として「青のボールドでUC[0-9]+」を探して、それにシーケンシャル番号をつけるマクロを作ってみました。
Option Explicit Sub SetAutoNumber() Dim i As Integer ' 先頭行にする Selection.GoTo What:=wdGoToLine, _ Which:=wdGoToFirst, Count:=1, Name:="" i = 1 ' 検索パラメータ With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = "UC[0-9]{1,}" .Forward = True .Wrap = wdFindContinue .Format = True .Font.Color = wdColorBlue .Font.Bold = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True Do While .Execute .Replacement.Text = "UC" & Format(i, "0000") .Execute Replace:=wdReplaceOne Selection.Collapse Direction:=wdCollapseEnd i = i + 1 Loop End With End Sub
Word 2003しか手元になかったので、2000の場合は少し変更する必要あるかも知れません。
→もし、プロパティが2003専用の場合は、エラーになるので、マクロの記録で検索パターン指定してみて、適宜変更ください。
なお、スタイルで検索する手段もあると思います。
参照で使うハイパーリンクのテキストは、UC0001のような番号を直接記載せずに「こちら」みたいに別テキストを記載する前提です。
Wordでの処理です。
既にご存知とは思いますが、スタイルを使って箇条書きで自動的に番号を振る手があります。
ただし、フォーマットはUC1, UC2,,, UC10のように左0を外した番号になります。
サンプル
http://sharp-pcstudio.com/disp.asp?cno=5&tbno=0&dno=128
書式を設定できるのは、フィールドですが、自動更新は無理と思います。
結論として、Wordではマクロを使わない限り上記のように自由な書式で自動連番を振ることは無理と思います。
マクロを使えば、特定文字列をUCとみなして上から順に番号を振りなおす事はできます。
ただし、この場合でも1つ削ったらマクロを動かすなどの操作が必要です。保存時に振りなおしでいいのであれば、都度動かす必要はありません。
2."UC" + format(str(i++),"0000") で上書き
3. 1. に戻る
になると思います。"UC0000"+str(i++)でいいのであれば、wordでもできます。
UC00001,UC00002,・・・UC000010
上のマクロを作るのはそれほど難はないのですが、番号を振った後で変更はあるでしょうから、それをどうするかが問題です。
UC00001のような形式をもう一度検索してそれらを再度ナンバリングしてもいいですが、そうすると文章中の物も変わってしまいますので、、、
OOo Writerというものではできるようなので、そちらのヘルプを見て実現してはいかがでしょうか?
マクロ作ってみようと試みたんですが、一括置換するコマンドがあるというのは分かったんですけど、それではなくて、行単位で該当文字列を検索・置換・次の行へ・・・、というものがどうしても見つかりませんで滞ってます。
OOoでも模索中ですけど、やはりこちらは慣れがない分、難儀してます。