Wordでマニュアルを作成するとき等、表の中で連番を振りたいときがよくあります。
そんなときは大抵「表に連続番号を振りたい」に書かれているような、段落番号を利用するのですが、個人的には“段落番号”はいまいち使い勝手がよくありません。
そこで、段落番号機能を使いやすくし、“表中の選択セルに連番を振るためのマクロ”を作成することにしました。
Option Explicit Public Sub Sample() AddTableRowNumber wdListNumberStyleIroha, "(", ")", 5, True End Sub Public Sub AddTableRowNumber(Optional ByVal Style As Word.WdListNumberStyle = wdListNumberStyleArabic, _ Optional ByVal Prefix = "", _ Optional ByVal Suffix = ".", _ Optional ByVal StartNo As Long = 1, _ Optional ByVal NumToText As Boolean = True) '表に行番号を振るWordマクロ Dim ltmp As Word.ListTemplate If Selection.Tables.Count > 0 Then Set ltmp = Application.ListGalleries(wdNumberGallery).ListTemplates(1) With ltmp.ListLevels(1) .NumberFormat = Prefix & "%1" & Suffix .TrailingCharacter = wdTrailingNone .NumberStyle = Style .StartAt = StartNo End With With Selection.Range .ListFormat.ApplyListTemplateWithLevel ListTemplate:=ltmp If NumToText = True Then .ListFormat.ConvertNumbersToText '段落番号を文字列に変換 End With End If End Sub
セルを選択した状態で、上記コードを実行すると、下図のように指定した文字(「(」「)」)で囲まれた連番が自動的に振られます(段落番号スタイルや開始番号も指定可)。
段落番号を振るだけの単純な仕組みですが、最後にConvertNumbersToTextメソッドを入れてあるのがポイントです。
このメソッドによって段落番号が普通の文字列になり、文字装飾等で扱いやすくなります。
あとは、よく使うスタイルごとにプロシージャを分けて、キーに割り当てれば作業終了です。
関連Webページ
- WdListNumberStyle Enumeration (Word)
- https://msdn.microsoft.com/ja-jp/library/ff837344.aspx
この記事へのコメントはありません。