各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つ削ったらマクロを動かすなどの操作が必要です。保存時に振りなおしでいいのであれば、都度動かす必要はありません。
ご回答ありがとうございます。
そうですか、Wordには自由連番の機能が備わってないのですね。
もしマクロで実現するとしたら、どのような処理を書くのでしょうか。
みたいな感じでしょうか。
——————
OOo Writerではいろんな種類の連番を一つの文書に共存することができそうなのですが、これを利用して希望の連番機能を実現できないものでしょうか。引き続き回答をお待ちしています。
変更箇所特定のやり方として「青のボールドで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のような番号を直接記載せずに「こちら」みたいに別テキストを記載する前提です。
id:airplantさん、ありがとうございます。
いま環境が手元になく試すことが出来ないのが残念ですが、いちはやく試してみたいと思います。
id:airplantさん、ありがとうございます。
いま環境が手元になく試すことが出来ないのが残念ですが、いちはやく試してみたいと思います。