図表番号を挿入する(Seqフィールドの利用)
フィールドを利用して図表番号を挿入するプログラムです。
紹介するのは、図番の挿入マクロと、図番を相互参照するマクロです。
▼作成背景
ワードで文書をつくるときに図1,図2,図3,、、と図を表示する場合があります。
ところが、文書を作っているある時点で、図2と図3の間に別の図を入れることってありますよね。
そのときに、現在の図3以降の全ての図の番号を振り直すのは非常に手間です。
いま、マクロの取説を書いているのですが、上記のような作業があまりにも面倒だったために何かよい方法がないかと思って作ったのがこのマクロです。
「連番のフィールド」を使えば、図3以降の図番のずれを全て自動で修正してくれます。
また、「相互参照のフィールド」を使えば、「図4に示すように」などの参照して書かれた文章も、図番を挿入してずれた場合に「図5に示すように」と更新してくれますので非常に便利です。
▼参照した資料
「エンジニアのためのWord再入門講座」です。
文章を書くときの目的にそって、細かなワードの設定・使い方が説明されている良書です。
本書のP.103~108の記事を参考にしてマクロを記録し、その後自分の利用方法に沿ったプログラムに修正しました。
最終的には、ヘルプをみてプログラムを作成しました。
以下のプログラムをツールバーのボタンに登録すると作業がかなり楽になります。
ボタンの作成方法は、こちら。
▼プログラム
「図番挿入」と「図番の相互参照」の二つのプログラムがあります。
Sub 図番挿入()
10 Selection.InsertCaption _
Label:="図"
20 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
30 Selection.TypeText Text:=" "
40 ActiveDocument.Fields.Update
End Sub
Sub 図番の相互参照()
Dim Message As String
Dim Title As String
Dim MyValue As Integer
10 On Error GoTo 図番の相互参照_Error
'メッセージ、タイトルの設定
20 Message = "図面番号を入力してください。"
30 Title = "図の相互参照"
' 図番を取得するインプットボックスを表示
40 MyValue = InputBox(Message, Title)
50 Selection.InsertCrossReference ReferenceType:="図", _
ReferenceKind:=wdOnlyLabelAndNumber, _
ReferenceItem:=MyValue
60 ActiveDocument.Fields.Update
70 On Error GoTo 0
80 Exit Sub
図番の相互参照_Error:
90 If Err = 4198 Then End
End Sub
▼プログラム解説
<図番挿入のプログラム>
10行:InsertCaptionで、図番を挿入します。
自動記録をすると、様々なプロパティが記録されますが、今回はLabelというプロパティだけ必要なので、その他のプロパティは削除しました。
20行:中央揃え
30行:図○のあとに全角スペースを挿入(これは、私が書いているマニュアルのスタイルです)
40行:フィールドの数値の更新。これをやらないと、相互参照した図番が更新されません。重要。
<図番の相互参照>
20行~40行:参照したい図番を入力
50行:フィールドを挿入
60行:フィールドの更新
※図番の相互参照_Error (エラー処理について)
上記の通り、20行~40行にてinputboxで参照先の図の番号を指定します。
この際に、指定した図番の図が文書中に存在しない場合(参照先がない図番を指定した場合)に、エラー番号4198が出て、エラー処理されます。
| 固定リンク
「マクロプログラム」カテゴリの記事
- 使用中の書式を検索するマクロ(2010.07.03)
- シンボルフォントを着色するマクロ(2010.06.04)
- 使用中の文字サイズ検出するマクロ(2010.05.01)
- テンプレートの編集マクロ(2010.04.25)
- 文字書式を保存/復元するマクロ(2010.04.24)
この記事へのコメントは終了しました。
コメント
はじめまして。
最近、ワードマクロに関心を抱きはじめ、御ブログを参考にしております。
ところで、「図(表)番の相互参照()」マクロに追加して欲しい機能があります。
1.現状では、数字の半角・全角が混在可能なので、
これをどちらか(原則として半角)に強制変換希望。
2.入力ボックスが長すぎるので、5桁くらいが入力できる程度の長さ(1.5センチくらい?)希望。
画面自体も、半分くらいの大きさでよいと思います。
3.右側に▲▼で数字を増減するコントロール(有効範囲は1以上)希望(直入力との併用)。
それと、参照先の図をあとから削除したり、または増やしたりすると、
リンク元との同期がとれなくなってしまいます。
これに対処することは可能でしょうか?
【参照先】 【リンク元】
図1(´∀`*) →図1を参照
図2( ゚д゚)、 →図2を参照
図3(`ー´) →図3を参照
↓図2を削除して、F9更新すると...
図1(´∀`*) →図1を参照
削除 →図2を参照
図2(`ー´) →図3を参照 ←ずれる∑(゚Д゚)ハッ
ご検討いただければ幸いです。
投稿: 仕様改善希望 | 2011年1月17日 (月) 13時23分